Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用mongoose按Id查找并删除数组中的子文档_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 使用mongoose按Id查找并删除数组中的子文档

Node.js 使用mongoose按Id查找并删除数组中的子文档,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我正试图用Mongoose删除数组中的子文档 我的数据: { "_id": { "$oid": "5d88dfe45feb4c06a5cfb762" }, "spaces": [{ "_id": { "$oid": "5d88dfe45feb4c06a5cfb76f" }, "name": "Building 2", "subSpace": [{

我正试图用Mongoose删除数组中的子文档

我的数据:

{
    "_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);
    })