从MongoDB集合中删除特定对象

时间:2014-01-27 16:19:19

标签: mongodb-query

我正在尝试从MongoDB集合中删除一个符合特定值条件的对象(而不是文档),在这种情况下 - “Accessible”:“null” - 同时保留此对象的其他实例。我尝试了db.collection.update({},{$ unset:{“Accessible”:“null”}},false,true)但它删除了所有带有“Accessible”键的对象。提前谢谢 更新前我的MongoDB集合

{
"_id" : ObjectId("52e5f09e8f3d99e1046abccc"),
    "Name" : "Skyline",
"Accessible" : "Y"

}
{
"_id" : ObjectId("52e5f09e8f3d99e1046abccd"),
    "Name" : "Highland",
"Accessible" : "null"

}

期望的结果:

{
"_id" : ObjectId("52e5f09e8f3d99e1046abccc"),
    "Name" : "Skyline",
"Accessible" : "Y"

}
{
"_id" : ObjectId("52e5f09e8f3d99e1046abccd"),
    "Name" : "Highland"

}

1 个答案:

答案 0 :(得分:1)

您需要首先确定要更新的文档,然后取消设置该特定字段:

db.collection.update(
    {"Accessible" : "null"}, 
    {$unset: { "Accessible" : ""}},
    { multi: true }
)

有关$ unset运算符的更多文档: http://docs.mongodb.org/manual/reference/operator/update/unset/