2016-10-22 84 views
0

我想用項目列表更新一個特定的菜單。光標有這個列表,我已經測試過,以確保。我試圖循環瀏覽光標中的每個項目,並將該項目的ID推入菜單的項目列表中。下面的代碼完成,沒有錯誤,但實際上並沒有改變菜單的項目字段。任何幫助深表感謝。謝謝!MongoDB shell更新forforach

cursor.forEach(function(item){ 
    db.menus.update(
     {_id: 5806639da77d6e0f00ac902c}, 
     {$push: {"items": item._id}}, 
     {upsert: true} 
    ); 
}); 

回答

0

我想這是因爲要更新傳遞5806639da77d6e0f00ac902c的元素,但請注意,這不是一個有效的參數,因爲它不是一個字符串,它不是一個的ObjectId。

如果你的數據庫上,你有_ids爲的ObjectID,首先嚐試將其轉換:

db.menus.update(
    {_id: ObjectId("5806639da77d6e0f00ac902c")}, 
    {$push: {"items": item._id}}, 
    {upsert: true} 
); 
+0

我的第一個答案是錯的,固定的, – andresk