キー==なしの場合、またはキーが存在しない場合に、条件を使用してドキュメントを検索したいと思います。このようなもの:
myDoc = self.request.root.db.myDocs.find_one({
'$or': [
{'myKey' : $doesNotExist } ,
{'myKey' : None }
]
})
また、次のようなキーがないだけでドキュメントを見つけられるようにしたいと思います。
myDoc = self.request.root.db.myDocs.find_one( {'myKey' : $doesNotExist } )
どうすればこれを達成できますか?
「キーが存在するかどうか」チェックの場合、.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
次のものを使用して、存在しないキーをテストできます。
db.myDocs.find_one({'myKey': { '$exists': False }})
$ exists演算子 に関するMongoドキュメント