我试图更新嵌套数组中的值,但无法使其工作.
我的目标是这样的
{
"_id": {
"$oid": "1"
},
"array1": [
{
"_id": "12",
"array2": [
{
"_id": "123",
"answeredBy": [],
},
{
"_id": "124",
"answeredBy": [],
}
],
}
]
}
Run Code Online (Sandbox Code Playgroud)
我需要将值推送到"answersBy"数组.
在下面的例子中,我尝试将"success"字符串推送到"123 _id"对象的"answersBy"数组,但它不起作用.
callback = function(err,value){
if(err){
res.send(err);
}else{
res.send(value);
}
};
conditions = {
"_id": 1,
"array1._id": 12,
"array2._id": 123
};
updates = {
$push: {
"array2.$.answeredBy": "success"
}
};
options = {
upsert: true
};
Model.update(conditions, updates, options, callback);
Run Code Online (Sandbox Code Playgroud)
我找到了这个链接,但它的答案只说我应该使用类似对象的结构而不是数组.这不适用于我的情况.我真的需要我的对象嵌套在数组中
如果你能在这里帮助我会很棒.我花了好几个小时来搞清楚这一点.
先感谢您!
我在mongodb有这个收藏
{
"_id" : "777",
"someKey" : "someValue",
"someArray" : [
{
"name" : "name1",
"someNestedArray" : [
{
"name" : "value"
},
{
"name" : "delete me"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想找到基于someArray.someNestedArray.name的文档,但我找不到任何有用的链接所有关于更新嵌套数组的搜索结果我正在尝试这个但是什么都不返回
db.mycollection.find({"someArray.$.someNestedArray":{"$elemMatch":{"name":"1"}}})
db.mycollection.find({"someArray.$.someNestedArray.$.name":"1"})
Run Code Online (Sandbox Code Playgroud)
还有别的东西
我如何通过双嵌套数组mongodb中的元素找到?