Я хотел бы запросить коллекцию монго для записей, которые либо не имеют значения для поля с именем «схема», либо явно имеют значение «http» для «схема». Звучит довольно просто, но эта проблема оказалась более сложной, чем кажется на первый взгляд.
Поскольку db.collection.find({'scheme': None})
возвращает все записи, в которых «схема» не определена (поле индекса отсутствует), я изначально предполагал, что будет работать следующее:
db.collection.find({'scheme': {'$in': ['http', None]}})
Однако это, по-видимому, исключает значения, в которых «схема» не определена, поэтому я могу только предположить, что она ищет записи, в которых схема либо «http», либо явно определена как «1007 *». Это кажется немного нелогичным, но у нас это есть. Моя вторая попытка была следующей:
db.collection.find( {'$or': [{'scheme': {'$exists': False}}, {'scheme': 'http'}]})
Это также исключает результат, где схема не определена. На этот раз я даже не могу придумать логическую причину, по которой это не удается.
Есть идеи, почему это не помогает, и как я могу заставить его работать так, как нужно?
Спасибо
РЕДАКТИРОВАТЬ: Просто подумал, что заметил, что я выполняю этот запрос через Python (pymongo), который объясняет None
(над null
) Javascript