将对象插入Meteor MongoDB中的多维数组中

Insert object into multidimensional array in Meteor MongoDB

本文关键字:数组 MongoDB 对象 插入 Meteor      更新时间:2023-09-26

我正在学习Meteor,我很难理解MongoDB。我有一个名为Menu的集合,看起来像这样:

id:123,cat:"启动",详细信息:{[项目:"nachos",价格:3.99,desc:'chips&queso']}

我想在该系列中添加另一个相等的项目:

id:123,cat:"启动",详细信息:{[项目:"nachos",价格:3.99,desc:'chips&queso'][项目:"calamari",价格:4.99,desc:"干鱿鱼"]}

我的代码如下:

Menu.upsert({_id:'123'},{$push:{details:[{item:'calamari'},{price:'4.99'},{desc:'fried calamari'}]}});

我也尝试过使用"update",但我只得到了一个"无法将$push修饰符应用于非数组"的错误。

更新谢谢你,Sindis,你是对的,我能做到这一点。

我制作了一个名为Menu2的新系列。

id:54,猫:"开始,详细信息:[{项目:"nachos"价格:3.99}]

然后按照建议使用"更新":

Menu2.update({id:'54'},{$push:{details:{item:'calamari',price:'4.99'}}});

我明白了!

id:54,cat:"启动",详细信息:[{项目:"nachos",价格:3.99}{项目:"calamari",价格:2.99}]

未测试,但我认为它应该更像这样:

Menu.upsert({_id:'123'},{$push: {details: {item:'calamari', price:'4.99', desc:'fried calamari'}}});

您推送的对象的各个部分不需要被对象包围,更新/追加程序已经期望对象进入数组,因此不需要方括号。

http://docs.mongodb.org/manual/reference/operator/update/push/