【问题标题】:Remove objects within array in MongoDB在 MongoDB 中删除数组中的对象
【发布时间】:2020-06-05 08:19:15
【问题描述】:

我需要删除数组中满足我将在下面显示的条件的所有对象。我会把文件和我所做的一个例子放在这里。

//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 
                      }
                     )

【问题讨论】:

  • 您可以使用$pull update operator根据条件删除特定的嵌套文档。
  • 是的,但我不知道如何把它放在这里,因为你可以看到条件不在数组内。我不能放 $pull: Candidates : name :"x" 或类似的东西,因为它不能满足我的需要。

标签: arrays json mongodb object


【解决方案1】:

根据我的理解,您只需清除candidates 数组并将其保持为candidates: []。为此,您可以使用$set 运算符根据您的情况将candidates 设置为[]

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-16
    • 2015-08-29
    • 2023-02-15
    • 2021-07-03
    • 2019-01-10
    • 2016-03-16
    相关资源
    最近更新 更多