【问题标题】:nested array of object remove specific elementin mongoDB对象的嵌套数组删除 mongoDB 中的特定元素
【发布时间】:2021-04-01 21:45:16
【问题描述】:

这是我的数据,我只想删除这个特定对象:
感谢提前如何从嵌套数组元素中删除特定对象

{ “_id”:ObjectId(“5397eb925d2664177b0fc5a6”), "answer" : "项目问题 1 - 答案 1", “isCorrectAnswer”:真 }

输入数据:

   {
        "_id" : ObjectId("5397e4b75c4c9bf0509709ab"),
        "name" : "Item Name",
        "description" : "Item Description",
        "questions" : [
            {
                "_id" : ObjectId("5397eb925d2664177b0fc5a5"),
                "question" : "Item Question 1",
                "answers" : [
                        {
                            "_id" : ObjectId("5397eb925d2664177b0fc5a6"),
                            "answer" : "Item Question 1 - Answer 1",
                            "isCorrectAnswer" : true
                        },
                        {
                            "_id" : ObjectId("5397eb925d2664177b0fc5a7"),
                            "answer" : "Item Question 1 - Answer 2",
                            "isCorrectAnswer" : false
                        }
                    
                    ]
            },
            {
                "_id" : ObjectId("5397eb925d2664177b0fc5a9"),
                "question" : "Item Question 2",
                "answers" : [
                    {
                        "_id" : ObjectId("5397eb925d2664177b0fc5aa"),
                        "answer" : "Item Question 2 - Answer 1",
                        "isCorrectAnswer" : false
                    },
                    {
                        "_id" : ObjectId("5397eb925d2664177b0fc5ab")
                        "answer" : "Item Question 2 - Answer 2",
                        "isCorrectAnswer" : true
                    }
                ]
            }
        ]
    }

expected output:
   {
        "_id" : ObjectId("5397e4b75c4c9bf0509709ab"),
        "name" : "Item Name",
        "description" : "Item Description",
        "questions" : [
            {
                "_id" : ObjectId("5397eb925d2664177b0fc5a5"),
                "question" : "Item Question 1",
                "answers" : [
                       
                        {
                            "_id" : ObjectId("5397eb925d2664177b0fc5a7"),
                            "answer" : "Item Question 1 - Answer 2",
                            "isCorrectAnswer" : false
                        }
                    ]
            },
            {
                "_id" : ObjectId("5397eb925d2664177b0fc5a9"),
                "question" : "Item Question 2",
                "answers" : [
                    {
                        "_id" : ObjectId("5397eb925d2664177b0fc5aa"),
                        "answer" : "Item Question 2 - Answer 1",
                        "isCorrectAnswer" : false
                    },
                    {
                        "_id" : ObjectId("5397eb925d2664177b0fc5ab")
                        "answer" : "Item Question 2 - Answer 2",
                        "isCorrectAnswer" : true
                    }
                ]
            }
        ]
    }

感谢提前如何从嵌套数组元素中删除特定对象

【问题讨论】:

    标签: mongodb mongoose


    【解决方案1】:

    Solution in Mongoplayground。试试这个:

    db.collection.updateOne(
        { "_id": ObjectId("5397e4b75c4c9bf0509709ab") },
        {
            $pull: {
                "questions.$[].answers": {
                    "_id": ObjectId("5397eb925d2664177b0fc5a6")
                }
            }
        }
    );
    

    输出:

    {
        "_id" : ObjectId("5397e4b75c4c9bf0509709ab"),
        "name" : "Item Name",
        "description" : "Item Description",
        "questions" : [
            {
                "_id" : ObjectId("5397eb925d2664177b0fc5a5"),
                "question" : "Item Question 1",
                "answers" : [
                    {
                        "_id" : ObjectId("5397eb925d2664177b0fc5a7"),
                        "answer" : "Item Question 1 - Answer 2",
                        "isCorrectAnswer" : false
                    }
                ]
            },
            {
                "_id" : ObjectId("5397eb925d2664177b0fc5a9"),
                "question" : "Item Question 2",
                "answers" : [
                    {
                        "_id" : ObjectId("5397eb925d2664177b0fc5aa"),
                        "answer" : "Item Question 2 - Answer 1",
                        "isCorrectAnswer" : false
                    },
                    {
                        "_id" : ObjectId("5397eb925d2664177b0fc5ab"),
                        "answer" : "Item Question 2 - Answer 2",
                        "isCorrectAnswer" : true
                    }
                ]
            }
        ]
    }
    

    【讨论】:

    猜你喜欢
    • 2017-05-18
    • 2021-07-03
    • 1970-01-01
    • 2019-01-25
    • 2019-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多