有没有办法根据条件从集合中删除除一个文档之外的所有文档。
我正在使用MongoDB版本2.4.9
答案 0 :(得分:35)
您可以通过以下方式执行此操作,
db.inventory.remove( { type : "food" } )
以上查询将删除类型等于“food”的文档
要删除与您可以执行的条件不匹配的文档,
db.inventory.remove( { type : { $ne: "food" } } )
或
db.inventory.remove( { type : { $nin: ["Apple", "Mango"] } } )
查看here了解详情。
答案 1 :(得分:4)
要删除除一个以外的所有文档,我们可以在包含与我们要保留的文档相关的值的指定数组上使用查询运算符$nin
(不在)。
db.collections.remove({"field_name":{$nin:["valueX"]}})
$nin
数组的优点是我们可以使用它来删除除一个或两个甚至许多其他文档之外的所有文档。
删除除两个以外的所有文件:
db.collections.remove({"field_name":{$nin:["valueX", "valueY"]}})
删除除三个以外的所有文件:
db.collections.remove({"field_name":{$nin:["valueX", "valueY", "valueZ"]}})
答案 2 :(得分:2)
查询
db.collection.remove({ "fieldName" : { $ne : "value"}})