22

キー == なしの場合、またはキーが存在しない場合の条件を使用してドキュメントを検索したい。このようなもの:

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

また、次のように、キーが見つからないだけでドキュメントを検索できるようにしたいと考えています。

myDoc = self.request.root.db.myDocs.find_one( {'myKey' : $doesNotExist } )

どうすればこれを達成できますか?

4

2 に答える 2

28

「キーが存在する場合」のチェックでは、aの使用.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
于 2013-03-18T21:31:23.687 に答える
18

存在しないキーをテストするには、次のようにします。

db.myDocs.find_one({'myKey': { '$exists': False }})

$exists 演算子に関する Mongo ドキュメント

于 2012-08-19T22:49:08.087 に答える