[英]MongoDB/PyMongo: Querying multiple criteria - unexpected results
我有一個集合,其中某些對象具有鍵foo
。 現在,我嘗試查詢確實具有此鍵但沒有特定值bar
所有對象。 為此,我使用以下查詢:
collection.find({'foo': {'$exists': True}, 'foo': {'$ne': 'bar'}})
我認為這兩個條件都是通過邏輯AND連接的。 但是,我也得到了不具有鍵foo
對象。 實際上,當我只使用查詢時,會得到相同的結果
collection.find({'foo': {'$ne': 'bar'}})
至於其他漢斯,如果我使用
collection.find({'foo': {'$exists': True}})
我只正確地獲取了帶有foo
對象,但是顯然所有對象都具有foo
,因此其中一些具有值bar
。
我該如何制定查詢才能獲得初始結果? 是否有一種順序可以測試多個條件? 我是否明確指定兩個條件的邏輯與?
您可以使用$and
來加入多個條件:
collection.find({"$and": [{"foo": {'$ne': 'bar'}},
{"foo": {'$exists': True}}]})
無需使用$and
,它也可以工作
db.collection.find({"foo":{"$ne":"bar", "$exists":true}})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.