我有一个mongo数据库,其中文档属于三种情况之一。他们是
let
nixpkgs = import <nixpkgs> { };
...
我正在尝试查找与上述2)匹配的所有文档,并从这些文档中删除“somevalue”属性。
例如,以下是一些示例文档:
1)
1) Don't have a key named "somevalue"
2) Have "somevalue" but it is set to null
3) Have "somevalue" but it is set to a valid value
2)
{
"_id" : ObjectId("58214e9ebeac160006000003"),
"name" : "Internal Stream"
}
3)
{
"_id" : ObjectId("574382e6891ea20007000002"),
"name" : "Stream 2"
"somevalue" : null
}
在一个数据库中,我运行以下命令: db.getCollection('mycollection')。find({somevalue:{$ exists:true}})。count()
我得到38条记录。这告诉我这个集合中有38个文档与上述2)和3)相匹配。
如果我执行以下操作:
db.getCollection('mycollection')。find({somevalue:null})。count()
我得到了1859条似乎管理上述1)和2)的记录。
如何运行与“somevalue”字段存在且“somevalue”设置为null的文档匹配的查询?
在我看来,当密钥不存在或密钥存在且设置为null时,null匹配。
我要做的是删除所有存在但没有值的文档,以便在完成后,如果属性具有实际值,则集合中的文档只有属性。
我也使用db.version()对我的版本进行了双重检查 3.4.1