Arrays 将数据添加到MongoDB中数组内的数组
这是我的mongodb文档:Arrays 将数据添加到MongoDB中数组内的数组,arrays,mongodb,Arrays,Mongodb,这是我的mongodb文档: { "_id" : "", "lists" : [ { "name" : "list 1", "items" : [] }, { "name" : "list 2", "items" : [] } ] } 如何在“项目”中添加对象 这是我到目前为止的代码,但它不起作用: xxx.update(_id, {$push: { "lists.$.items": item}
{
"_id" : "",
"lists" : [
{
"name" : "list 1",
"items" : []
},
{
"name" : "list 2",
"items" : []
}
]
}
如何在“项目”中添加对象
这是我到目前为止的代码,但它不起作用:
xxx.update(_id, {$push: { "lists.$.items": item}});
请注意,我可以访问索引(称为“index”的变量),因此可以在索引0、1、2…等处插入项
我以前试过,但不起作用:
xxx.update({_id, "lists": index}, {$push: { "lists.$.items": item}});
我也看了其他类似的问题,什么也没找到。它们中的大多数在数组中都有某种id字段,但我没有。那怎么办
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);
不确定它是否能正常工作,或者需要进一步调整,但你明白了。对不起,我不能直接输入数字,我需要使用变量,以便其可重用。有办法吗?我知道你不能硬编码,我的意思是你根据变量准备一个字符串,通过json.parse将其解析为json,然后使用该对象。有办法用javascript实现吗?我也做了一些搜索,我开始认为这是不可能的,因为mongoDBs当前的限制给出了答案,是的,将对象数组放在数组中是不好的设计,查询和索引将不会有效,特别是如果处理内部嵌套数组。