我有下面的文档,它有两个数组,一个在另一个里面,
附件数组和附件数组内的文件数组。我想使用这个元素_id删除文件数组中的一个元素。但是它不适合我,我试过这个代码,它返回{ n: 144,nModified: 0,ok: 1}
Invoice.update({}, {
$pull: {
"attachment":
{
"files":
{
$elemMatch:
{ _id: ObjectId("5b7937014b2a961d082de9bf") }
}
}
}
}, { multi: true })
.then(result => {
console.log("delete", result);
});
这就是文档的外观
发布于 2018-08-21 08:02:55
你可以在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 } )
。
https://stackoverflow.com/questions/51916388
复制相似问题