I want to find a document using a conditional if the key == None or if the key doesn't exist. Something like this:
myDoc = self.request.root.db.myDocs.find_one({
'$or': [
{'myKey' : $doesNotExist } ,
{'myKey' : None }
]
})
I'd also like to be able to find a document just by a missing key like this:
myDoc = self.request.root.db.myDocs.find_one( {'myKey' : $doesNotExist } )
How can I accomplish this?
For "if key exists" checks, using a .find()
is significantly faster than find_one()
.
Single document: cursor = db.myDocs.find({"mykey": {"$exists": True}}).limit(1)
Multiple documents: cursor = db.myDocs.find({"mykey": {"$exists": True}})
if cursor.count() > 0:
keyExists = True
else:
keyExists = False
You can test for a key not existing with:
db.myDocs.find_one({'myKey': { '$exists': False }})
Mongo documentation about the $exists operator
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With