所以继承我的mongodb文件:
{
"_id" : "",
"lists" : [
{
"name" : "list 1",
"items" : []
},
{
"name" : "list 2",
"items" : []
}
]
}
我如何在“items”中添加对象?
这是我到目前为止的代码,但它不起作用:
xxx.update(_id, {$push: { "lists.$.items": item}});
请注意,我可以访问索引(名为'index'的变量),因此可以在index,0,1,2 ......等处插入项目。
我以前试过这个,但它不起作用:
xxx.update({_id, "lists": index}, {$push: { "lists.$.items": item}});
我也看了其他类似的问题,找不到任何东西。他们中的大多数在阵列中都有某种id字段,但我没有。
答案 0 :(得分:0)
怎么样?
xxx.update({_id}, {$push: { "lists.index.items": item}});
当然这会失败,我的意思是用实际索引值替换索引
xxx.update({_id}, {$push: { "lists.2.items": item}});
您可以根据索引操作更新json,如下所示。
var update = '{$push: { "lists.'+index+'.items": '+item+'}}';
var updateObj = JSON.parse(update);
xxx.update({_id}, updateObj);
不确定它是否会按原样运行,或者需要进一步调整,但你明白了。