我首先遇到了2个问题,如何在Mini MongoDb中循环和更新。以及如何获取_id以进行更新。
var data = [
{
"key" : "North America" ,
"values" : [
[ 1025409600000 , 23.041422681023] ,
[ 1028088000000 , 19.854291255832]
]
},
{
"key" : "Africa" ,
"values" : [
[ 1025409600000 , 7.9356392949025] ,
[ 1028088000000 , 7.4514668527298]
]
}];
这个循环功能但它只是在第一次循环时停止
for(var i = 0; i < data.length; i++) {
Looping.insert({
key:data[i].key,
values:[]
});
var looping_id = Looping._id;
for(var j = 0; j < data[i].values.length; j++) {
Looping.update({
_id: looping_id
},
{
$addToSet: {values: data[i].values[j]}
});
}
}
答案 0 :(得分:0)
假设Looping
是一个集合,您可以使用以下内容插入项目:
_.each(data, function(item) {
Looping.insert(item);
});
但是,因为您正在使用$addToSet
,所以我猜测这些值可能是非唯一的。在这种情况下,您可以尝试:
_.each(data, function(item) {
var id = Looping.insert({key: item.key});
_.each(item.values, function(value) {
Looping.update(id, {$addToSet: {values: value}});
});
});
注意:
insert
时会返回插入项的ID,它不会保存在集合对象中。values
进行重复数据删除,以避免所有更新。