将对象插入Meteor MongoDB中的多维数组中
Insert object into multidimensional array in Meteor MongoDB
我正在学习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/
相关文章:
- MongoDB (php) - 以数组而不是多个属性的形式返回文档属性
- Mongodb$in以与数组中相同的顺序获取结果
- MongoDB-通过比较集合和对象的数组来返回现有字段的数组
- MongoDB数组与对象
- MongoDB嵌套对象数组后查询
- 如何在mongodb(mongose)中覆盖子文档的数组属性
- 如何获取文档数组中元素的计数-MongoDB
- 使用mongoose将数据推送到mongoDB模式中的数组中
- 如何在mongodb中根据数组内容的差异进行排序
- angular mongodb数组格式写错了
- node.js上的过程性2d数组mongoDB插入内存不足
- MongoDB findAndModify:>>>查找和更新文档数组中的对象
- 更新数组中的嵌入文档 - Mongodb + Node Driver
- MongoDB 无法将$addToSet应用于 Meteor JS 中的非数组
- Expressjs&集合中的MongoDB更新对象's数组
- 更新数组MongoDB Meteor内部的对象
- 如何将返回的值推送到数组mongodb中
- 拉子文档在数组mongodb
- 如何查询包含数组MongoDB中某个元素的特定值的单个文档
- 错误,而插入javascript数组mongodb使用猫鼬