13
我有一個集合aTable有2個記錄:更新在foreach所MongoDB的外殼
{
"title" : "record 1",
"fields" : [
{
"_id" : 1,
"items" : [
1
]
},
{
"_id" : 2,
"items" : [
2,3,4
]
},
{
"_id" : 3,
"items" : [
5
]
}
]
},
{
"title" : "record 2",
"fields" : [
{
"_id" : 4,
"items" : [
7,8,9,10
]
},
{
"_id" : 5,
"items" : [
]
},
{
"_id" : 6,
"items" : [
11,12
]
}
]
}
我想從
items" : [ 11,12 ]
到
更新領域 aTable.fields.itemsitems" : [
{item: 11, key: 0},
{item:12, key: 0}
]
i browse fields與forEach但我無法保存它。
var t = db.aTable.find();
t.forEach(function(aRow) {
aRow.fields.forEach(function(aField){
aField.items.forEach(function(item){
var aNewItem = { item: parseInt(item), ref: 0 };
db.aTable.update(item, {$set:aNewItem})
})
})
});
請幫幫我。非常感謝您
是否有任何錯誤?另一個選擇是直接在aRow對象中進行更改,然後調用db.aTable.save(aRow) – Sikorski
,因爲** aRow.fields **是數組,** aRow.fields **中的每個元素都有多個項目* *。 **項目**是數組。所以我們不能直接更新** aRow ** –