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.

Как мне сформулировать мой запрос для достижения моего начального результата? Существует ли такой порядок, в котором тестируются несколько критериев? Я явно указываю логическое И обоих критериев?

Ответы на вопрос(2)

Ваш ответ на вопрос