2015-04-27 29 views
1

我有一個像這樣構造的Json對象。用mongodb更新一個複雜的對象

/* 1 */ 
{ 
    "_id" : ObjectId("553e4b0a903fd38019ac2a6a"), 
    "id" : 19, 
    "monday" : { 
     "entrees" : [], 
     "viandes" : [], 
     "legumes" : [], 
     "fromages" : [], 
     "desserts" : [] 
    }, 
    "thursday" : { 
     "entrees" : [], 
     "viandes" : [], 
     "legumes" : [], 
     "fromages" : [], 
     "desserts" : [] 
    }, 
    "wednesday" : { 
     "entrees" : [], 
     "viandes" : [], 
     "legumes" : [], 
     "fromages" : [], 
     "desserts" : [] 
    }, 
    "tuesday" : { 
     "entrees" : [], 
     "viandes" : [], 
     "legumes" : [], 
     "fromages" : [], 
     "desserts" : [] 
    }, 
    "friday" : { 
     "entrees" : [], 
     "viandes" : [], 
     "legumes" : [], 
     "fromages" : [], 
     "desserts" : [] 
    } 
} 

我想更新這個對象,在數組中插入值。

我測試了不同的查詢,但我的對象從不更新。

例如,此查詢無法正常工作。

self.menucollection.update(
{ 
    'id' : id 
}, 
{ 
    $set:{ 'monday':{ 
     'entrees' : 'toot' 
     } 
    } 
}, 
function(err, item){ 
    callback(err, item); 
} 
); 

任何想法?

+0

定義「*不能正常工作*」。你期望會發生什麼以及會發生什麼? – GolfWolf

+0

好的,我想在星期一主體數組中推入一個值,並且我的查詢沒有修改我的對象。 –

+0

您可能想閱讀[我如何提出一個好問題](http://stackoverflow.com/help/how-to-ask),它可以提高獲得有用答案的概率_drastically_。你可能會發現[ESR](https://en.m.wikipedia.org/wiki/Eric_S._Raymond)的優秀論文[如何提問智能方式](http://catb.org/~esr/) faqs/smart-questions.html)也很有幫助。 –

回答

3

要添加到數組中,您必須使用$push

此外,訪問星期一/主菜使用dot notation

self.menucollection.update({'id': id}, { $push: { 'monday.entrees': 'toot' }}); 
+0

正是我在尋找,Thx很多! –