【发布时间】:2017-05-15 10:12:48
【问题描述】:
假设有一些文档:
# No 'value'
{
'name': 'T1',
}
# 'value' is a non-empty dict
{
'name': 'T1',
'value': {'a':'A', 'b':'B'}
}
# 'value' is a empty dict
{
'name': 'T1',
'value' : {}
}
我要查询的是 value 不存在或 value 存在且为空的文档。我尝试了以下方法,但不起作用:
cursor = collection.find({
'name': {"$exists": 1},
'value': {"$or": [{"$exists":0}, {"$eq": {}}]}
})
错误:
pymongo.errors.OperationFailure: unknown operator: $or
【问题讨论】:
-
因为 $or should.be 顶级键,不在字段内。见文档; docs.mongodb.com/manual/reference/operator/query/or
-
那么我怎样才能实现我想要的,如果把它放在顶层,如何处理其他查询参数?