在MongoDB中保存对象数组

k5hmc34c  于 2022-12-03  发布在  Go
关注(0)|答案(3)|浏览(398)

我想在我的Meteor应用程序中保存MongoDB中的对象数组,我还使用Meteor天文学管理Mongo收集
像这样的对象数组

[
    {
        "id" : "aaaa1",
        "make" : "toyota",
        "year" : "2005",
        "model" : "prado",
    },
    {
        "id" : "aaaa2",
        "make" : "toyota",
        "year" : "2005;2006",
        "model" : "fortuner",
    },
    {
        "id" : "aaaa3",
        "make" : "toyota",
        "year" : "2005;2006;2007;2008",
        "model" : "axio",

    },

]

我使用map函数循环遍历数组并保存数据,但它只保存最后一条记录。

array.map((row) => {
  console.log(row.type);
  vehicleDb.set({
    make: row.make,
    year: row.year,
    model: row.model,

  });
  vehicleDb.save( function (error) {
    // console.log(error);
  });
});
dfuffjeb

dfuffjeb1#

如果你使用.set将元素保存到一个数组中,你需要将then“push”到数组中。下面是MongoDB数组操作符的列表:https://docs.mongodb.com/manual/reference/operator/update-array/

epfja78i

epfja78i2#

我假设vehicleDb是您的模式/模型,因为您使用了vehicleDb.save

array.map((row) => {
  console.log(row);
  var newVehicle = new vehicleDb(row);
  newVehicle.save( function (error, doc) {
    // console.log(error);
    // console.log(doc)
  });
});

如果vehicleDb不是您的模型,那么在您的问题中添加了您的模式,我将更新我的答案

pgccezyw

pgccezyw3#

array.mapNotify.save。
在我的例子中,当传递整个对象以保存在文档中时,它不起作用。

相关问题