MongoDB - 从数组中拉出多个对象

时间:2018-02-09 16:15:26

标签: arrays mongodb

您好我试图从一个看起来像这样的数组中删除多个对象。

{
"_id" : ObjectId("5a7da1bda21d5f3e8cf005b3"),
"owner" : "1",
"group_name" : "PAASCU Board",
"group_members" : [ 
    {
        "faculty_name" : "Cheska Dela Rosa",
        "faculty_number" : 2,
        "_id" : ObjectId("5a7da1bda21d5f3e8cf005b5")
    }, 
    {
        "faculty_name" : "Earl Sempio",
        "faculty_number" : 7323,
        "_id" : ObjectId("5a7da1bda21d5f3e8cf005b4")
    }, 
    {
        "faculty_number" : 203,
        "faculty_name" : "Sample",
        "_id" : ObjectId("5a7dbf7952bd150a94d83958")
    }, 
    {
        "faculty_number" : 8025,
        "faculty_name" : "Sample Postman",
        "_id" : ObjectId("5a7dc64a1cf5dd3d50167d53")
    }
],
"__v" : 0 }

使用带有此代码的$pull删除单个对象时,它可以正常工作。

db.getCollection('groups').update({_id: ObjectId("5a7da1bda21d5f3e8cf005b3")}, {$pull: {"group_members": {"faculty_number":8025}}})

但是,如果我想删除具有不同faculty_number的多个对象,该怎么办?我尝试使用$ each方法,就像我在数组中添加多个对象一样,但它不能很好地工作。

1 个答案:

答案 0 :(得分:8)

使用Prod_cd运算符传递教师值列表以从嵌入数组中删除文档。更多here

尝试

$in