1
我正在學習Meteor,我很難理解MongoDB。我有一個集合稱爲菜單,看起來像這樣:將對象插入Meteor MongoDB中的多維數組
id:123, cat:'starters', details:{[ item:'nachos', price:'3.99', desc:'chips & queso' ]}
我想另一個項目是集合添加到平等:
id:123, cat:'starters', details:{[ item:'nachos', price:'3.99', desc:'chips & queso' ],[ item:'calamari', price:'4.99', desc:'fried calamari' ]}
我的代碼如下所示:
Menu.upsert({_id:'123'},{$push:{details:[{item:'calamari'},{price:'4.99'},{desc:'fried calamari'}]}});
我也嘗試使用「更新」,但我只是得到一個「無法應用$ push修飾符到非數組」的錯誤。
UPDATE 謝謝Sindis,你是對的,我能夠得到這個工作。
我做了一個叫做Menu2的新集合。
id:54, cat:'starters, details:[{ item:'nachos' price:'3.99' }]
然後使用 「更新」 的建議:
Menu2.update({id:'54'},{$push:{details:{item:'calamari',price:'4.99'}}});
而且我得到了這個!
id:54, cat:'starters', details:[{ item:'nachos', price:'3.99' },{ item:'calamari', price:'2.99' }]
然而,感謝您的回答;仍然沒有運氣,我得到同樣的錯誤。 – user3280456 2014-10-28 17:38:43
要做到這一點,細節的定義必須是[],而不是{}。所以第一張唱片應該是這樣的:''細節:[{item:'nachos', price:'3.99', desc:'chips&queso' }]'。現在您創建了一個數組,並且您可以在其中推入對象,{}僅僅是Mongo中的一個對象,如果我正確的話。哦,還有,嘗試更新它,而不是插件。 – Sindis 2014-10-28 18:49:07