MongoDB / PyMongo: запрос нескольких критериев - неожиданные результаты
У меня есть коллекция, где некоторые из объектов имеют ключfoo
, Я сейчас пытаюсь сделать запрос для всех объектов, которые действительно имеют этот ключ, но не с определенным значениемbar
, Для этого я использую следующий запрос:
collection.find({'foo': {'$exists': True}, 'foo': {'$ne': 'bar'}})
Я думал, что оба критерия связаны через логическое И. Тем не менее, я получаю также объекты, которые не имеют ключаfoo
, На самом деле, я получаю тот же результат, когда просто использую запрос
collection.find({'foo': {'$ne': 'bar'}})
С другой стороны, если я использую
collection.find({'foo': {'$exists': True}})
Я правильно получаю только объекты сfoo
но все они, очевидно, некоторые из них имеют значениеbar
.
Как мне сформулировать мой запрос для достижения моего начального результата? Существует ли такой порядок, в котором тестируются несколько критериев? Я явно указываю логическое И обоих критериев?