Arrays 删除MongoDB中数组内的对象

Arrays 删除MongoDB中数组内的对象,arrays,json,mongodb,object,Arrays,Json,Mongodb,Object,我需要删除数组中所有满足以下条件的对象。我将在这里介绍这些文件和我所做工作的示例 //document 1 { "_id" : ObjectId("5ec73abebd7e4d618a057350"), "code" : "X20", "title" : "Full stack developer", "location" : "Paris", "date" : ISODate("2020-05-22T02:36:46.272Z"), "candi

我需要删除数组中所有满足以下条件的对象。我将在这里介绍这些文件和我所做工作的示例

//document 1
{
    "_id" : ObjectId("5ec73abebd7e4d618a057350"),
    "code" : "X20",
    "title" : "Full stack developer",
    "location" : "Paris",
    "date" : ISODate("2020-05-22T02:36:46.272Z"),
    "candidates" : [ 
        {
            "name" : "David",
            "last_name" : "Broncano",
            "telephone" : "642025552",
            "email" : "david@gmail.com"
        }, 
        {
            "name" : "Pablo",
            "last_name" : "Claros",
            "telephone" : "628721784",
            "email" : "pablo@gmail.com"
        }
    ]
}

// document 2
{
    "_id" : ObjectId("4ec73abebd7e4d618a057350"),
    "code" : "X50",
    "title" : "Full stack developer",
    "location" : "Madrid",
    "date" : ISODate("2020-05-22T02:36:46.272Z"),
    "candidates" : [ 
        {
            "name" : "Maria",
            "last_name" : "Mars",
            "telephone" : "642024582",
            "email" : "dasd@gmail.com"
        }, 
        {
            "name" : "Pablo",
            "last_name" : "Claros",
            "telephone" : "628721784",
            "email" : "pablo@gmail.com"
        }
    ]
}
所以我需要删除所有位置在马德里的候选人。我已经这样做了,但它删除了字段。是否可以使用$pull或其他方法删除其中的内容

db.offers.update(
                      { location : "Madrid"},
                      { 
   $unset:{
      "candidates":""
   }   } , 
                      { 
                          multi : true 
                      }
                     )

根据我的理解,您只需清除
候选者
数组,并将其维护为
候选者:[]
。为此,您可以使用
$set
运算符根据您的条件将
候选项设置为
[]

db.offers.update({location:“Madrid”},{$set:{“候选者”:[]},{multi:true})

您可以根据条件使用删除特定的嵌套文档。是的,但我不知道如何将其放在这里,因为您可以看到条件不在数组中。我不能放$pull:candidates:name:“x”或任何类似的东西,因为它不能满足我的需要。