Node.js 使用mongoose按Id查找并删除数组中的子文档
我正试图用Mongoose删除数组中的子文档 我的数据:Node.js 使用mongoose按Id查找并删除数组中的子文档,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我正试图用Mongoose删除数组中的子文档 我的数据: { "_id": { "$oid": "5d88dfe45feb4c06a5cfb762" }, "spaces": [{ "_id": { "$oid": "5d88dfe45feb4c06a5cfb76f" }, "name": "Building 2", "subSpace": [{
{
"_id": {
"$oid": "5d88dfe45feb4c06a5cfb762"
},
"spaces": [{
"_id": {
"$oid": "5d88dfe45feb4c06a5cfb76f"
},
"name": "Building 2",
"subSpace": [{
"_id": {
"$oid": "5d88dfe45feb4c06a5cfb771"
},
"name": "Basement"
}, {
"_id": {
"$oid": "5d88dfe45feb4c06a5cfb770"
},
"name": "Floors"
}]
}, {
"_id": {
"$oid": "5d88dfe45feb4c06a5cfb76c"
},
"name": "Building 4",
"subSpace": [{
"_id": {
"$oid": "5d88dfe45feb4c06a5cfb76e"
},
"name": "Basement"
}, {
"_id": {
"$oid": "5d88dfe45feb4c06a5cfb76d"
},
"name": "Floors"
}]
}]
}
对于本例,我们希望删除建筑2中具有以下id的子空间楼层:5d88dfe45feb4c06a5cfb771
我的代码(在模型中):
exports.removeSubSpaceById=(子空间id)=>{
Residence.findOneAndUpdate({“spaces.subSpace._id:'5d88dfe45feb4c06a5cfb771'},
{$pull:
{空格:
{子空间:
{{u id:'5d88dfe45feb4c06a5cfb771'}}},函数(错误,结果){
控制台日志(结果);
})
};
输出:console.log:我的整个文档
但子空间/基底(5d88dfe45feb4c06a5cfb771)仍在我的文档中
感谢您的帮助。对嵌套数组操作使用位置运算符 }
exports.removeSubSpaceById = (subSpaceId) => {
Residence.findOneAndUpdate({ "spaces._id": '5d88dfe45feb4c06a5cfb76f' },
{
$pull:
{
"spaces.$.subSpace": { _id: "5d88dfe45feb4c06a5cfb771" }
}
}, function (err, result) {
console.log(result);
})