Mongo条件为"密钥不存在"?

zak*_*ces 19 python key-value mongodb pymongo

如果密钥==无或密钥不存在,我想使用条件查找文档.像这样的东西:

myDoc = self.request.root.db.myDocs.find_one({
                          '$or': [
                              {'myKey' : $doesNotExist } ,
                              {'myKey' : None }
                            ]
                    })
Run Code Online (Sandbox Code Playgroud)

我还希望能够通过丢失的密钥找到一个文档,如下所示:

myDoc = self.request.root.db.myDocs.find_one( {'myKey' : $doesNotExist } )
Run Code Online (Sandbox Code Playgroud)

我怎么能做到这一点?

Sag*_*kar 25

对于"如果键存在"检查,使用.find()显著速度find_one().

单个文件: cursor = db.myDocs.find({"mykey": {"$exists": True}}).limit(1)

多个文件: cursor = db.myDocs.find({"mykey": {"$exists": True}})

if cursor.count() > 0:
    keyExists = True
else:
    keyExists = False
Run Code Online (Sandbox Code Playgroud)


Joe*_*Day 15

您可以测试不存在的密钥:

db.myDocs.find_one({'myKey': { '$exists': False }})
Run Code Online (Sandbox Code Playgroud)

关于$ exists运算符的 Mongo文档