簡體   English   中英

MongoDB / PyMongo:查詢多個條件-意外結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM