假设我在文档中有大量条目:
db.document
其中一些没有一些关键,让我们说出名字。所以我们有两种类型的条目 - 有名和无名。
{ "_id" : ObjectId("4dea81a8bd2bb0323800002d"), "fetched_at" : ISODate("2013-08-02T17:41:30Z"), "keyword" : "110770", "name" : "SOME NAME" }
{ "_id" : ObjectId("4dea81a8bd2bb0323800002a"), "fetched_at" : ISODate("2013-08-02T17:44:17Z"), "keyword" : "125176" }
我想删除没有name
属性的所有条目,因为它使我的数据库不存在。我怎样才能做到这一点?我尝试使用null
和undefined
,但它不起作用。
答案 0 :(得分:3)
可以使用$exists:
db.document.remove( { name : { $exists : false } } );
答案 1 :(得分:0)
db.document.remove( { name : null } )
也应该有用。例如:
> db.document.insert({"fetched_at" : ISODate("2013-08-02T17:41:30Z"), "keyword" : "110770", "name" : "SOME NAME"})
> db.document.insert({"fetched_at" : ISODate("2013-08-02T17:44:17Z"), "keyword" : "125176" })
> db.document.insert({"fetched_at" : ISODate("2013-08-02T17:44:17Z"), "keyword" : "125176" })
> db.document.find().size()
3
> db.document.remove({name:null})
> db.document.find().size()
1
> db.document.find().pretty()
{
"_id" : ObjectId("520eac7e5d0ee1aa8515a550"),
"fetched_at" : ISODate("2013-08-02T17:41:30Z"),
"keyword" : "110770",
"name" : "SOME NAME"
}