首页 > 解决方案 > 从另一个数组中删除数组元素

问题描述

我有一个 MongoDB 对象,例如:

{

    "courseName": "ML",
    "user": ObjectId("6087dc4c2ba7a828363c9fca"),
    "questions": [  
        {

            "topics": [
               "a","b"
            ],
        },
        {
            "topics": [
                "a","b","d"
            ],
        }
    ]
}

我想找到问题courseNameuser问题,我想删除与输入主题匹配的主题。

我怎样才能做到这一点?

如果我的输入是,["a"]那么更新输出应该如下所示:

{

    "courseName": "ML",
    "user": ObjectId("6087dc4c2ba7a828363c9fca"),
    "questions": [  
        {

            "topics": [
               "b"
            ],
        },
        {
            "topics": [
                "b","d"
            ],
        }
    ]
}

标签: mongodbmongoose

解决方案


  • $[]所有元素的位置questions并由$in操作员检查条件
db.collection.updateMany(
  { 
    "courseName": "ML",
    "user": ObjectId("6087dc4c2ba7a828363c9fca"),
    "questions.topics": { $in: ["a"] } 
  },
  {
    $pull: {
      "questions.$[].topics": { $in: ["a"] }
    }
  }
)

操场


推荐阅读