将数据添加到MongoDB中的数组中的数组

时间:2016-12-31 11:25:35

标签: arrays mongodb

所以继承我的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字段,但我没有。

1 个答案:

答案 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); 

不确定它是否会按原样运行,或者需要进一步调整,但你明白了。