嗨,我正在尝试从一个看起来像这样的数组中删除多个对象.
{
"_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 }
Run Code Online (Sandbox Code Playgroud)
当我使用$ pull使用此代码删除单个对象时,它可以正常工作.
db.getCollection('groups').update({_id: ObjectId("5a7da1bda21d5f3e8cf005b3")}, {$pull: {"group_members": {"faculty_number":8025}}})
Run Code Online (Sandbox Code Playgroud)
但是如果我想删除具有不同faculty_number的多个对象呢?我尝试使用$ each方法,就像我在数组中添加多个对象一样,但它不能正常工作.
use*_*814 11
使用$in
运算符传递教师值列表以从嵌入数组中删除文档.更多here
尝试
db.groups.update(
{"_id": ObjectId("5a7da1bda21d5f3e8cf005b3")},
{"$pull":{"group_members":{"faculty_number":{$in:[8025,7323]}}}}
)
Run Code Online (Sandbox Code Playgroud)