有没有一种方法可以根据条件从集合中删除除一个文档以外的所有文档。
我正在使用MongoDB版本2.4.9
有没有一种方法可以根据条件从集合中删除除一个文档以外的所有文档。
我正在使用MongoDB版本2.4.9
您可以按照以下方式进行操作:
db.inventory.remove( { type : "food" } )
上述查询将删除类型等于 "food" 的文档。
要删除不符合条件的文档,可以执行以下操作:
db.inventory.remove( { type : { $ne: "food" } } )
db.inventory.remove( { type : { $nin: ["Apple", "Mango"] } } )
点击这里了解更多信息。
$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"]}})
查询
db.collection.remove({ "fieldName" : { $ne : "value"}})
db.collection.remove({"fieldName" : { $nin: ["value"]}});