我无法理解如何将新的 field:value
object
添加到 mongo
数据库中。
假设我有以下文档
:
var people={'firstname': 'John','surname':'Smith',
'favouritefood':[{'fruit':'apples','drink':'coffee'}]}
如何将“蔬菜”:“西兰花”添加到“最喜欢的食物”中,使其看起来像这样:
{'firstname': 'John','surname':'Smith',
'favouritefood':[{'fruit':'apples','drink':'coffee','vegetable':'broccoli'}]}
如果我输入:
people.findOneAndUpdate({'firstname':'John'},
{$push {favouritefood: {vegetable:broccoli}}},
{upsert:true})
它给了我这个:
{'firstname': 'John','surname':'Smith',
'favouritefood':[{'fruit':'apples','drink':'coffee'},{'vegetable':'broccoli'}]}
如果我尝试:
people.findOneAndUpdate({'favoritefood':'apples'},
{$push {vegetable:broccoli}}},
{upsert:true})
它说:
'$push' is empty. You must specify a field like so: {$push: {<field>: ...}}
非常感谢任何帮助!
最佳答案
我认为您将能够更新 this 之后的最喜欢的食物数组第一个对象语法
但我建议你和评论中的人一样,将你的结构更改为 mongoDB 中更自然的结构。将每种食物类别视为数组的一个元素,而不是第一个元素的对象字段。
关于node.js - Mongoose:如何将字段/值插入现有子文档中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32143312/