我无法理解新field:value
objects
如何添加到mongo
数据库。
说我有以下document
:
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>: ...}}
非常感谢任何帮助!
答案 0 :(得分:1)
我认为您可以在this语法后更新favouritefood数组第一个对象
但我建议你和评论中的人一样,在mongoDB中将你的结构改为更自然。将每个类别的食物视为数组的元素而不是第一个元素的对象字段。