保存MongoDB中的对象数组

时间:2016-09-06 04:52:25

标签: mongodb meteor astronomy

我想在我的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);
  });
});

2 个答案:

答案 0 :(得分:0)

您正在使用" .set"要将元素保存到数组中,您需要" push"然后进入阵列。 这是MongoDB数组运算符列表:https://docs.mongodb.com/manual/reference/operator/update-array/

答案 1 :(得分:0)

我认为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不是您的模型,那么在您的问题中添加您的架构,我会更新我的答案