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