嵌套数组 mongodb 中删除元素"/>
从嵌套数组 mongodb 中删除元素
我有以下文件,它有两个数组,一个在另一个里面,
附件数组和附件数组中的文件数组。
我想使用这个元素 _id 删除文件数组中的一个元素。但它不适合我,我试过这段代码,它返回
{ n: 144, nModified: 0, ok: 1 }
Invoice.update({}, {
$pull: {
"attachment":
{
"files":
{
$elemMatch:
{ _id: ObjectId("5b7937014b2a961d082de9bf") }
}
}
}
}, { multi: true })
.then(result => {
console.log("delete", result);
});
这是文档的样子
回答如下:您可以在 3.6 版本中尝试以下更新查询。
Invoice.update(
{},
{"$pull":{"attachment.$[].files":{_id:ObjectId("5b7969ac8fb15f3e5c8e844e")}}},
{"multi": true}, function (err, result) {console.log(result);
});
如果您是从旧版本升级,请使用
db.adminCommand( { setFeatureCompatibilityVersion: 3.6 or 4.0 depending on your version } )
。
更多推荐
从嵌套数组 mongodb 中删除元素
发布评论