Mongo conditional for "key doesn't exist"?

key-value, mongodb, pymongo, python

Solution

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

Problem

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?

Original source