【发布时间】: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