Я пытаюсь построить запрос Mongo, который получает все документы, удовлетворяющие множеству условий $ AND, а также один или несколько условий $ OR. Мой подход ниже.
Условие $ AND работает как ожидалось, но когда я добавляю $ OR, результаты не изменяются. Любая помощь приветствуется.
Collection.find({
$and:[
{lat: { $ne:""}},
{lon: { $ne:""}},
{type : "foo"},
{keywords:{ $regex : "bar", $options:"i" }},
{ $or:[
{isOpen : "True"},
{isOpen : "False"},
{price : { $gte: 0}},
]
},
]
}
)
Вам действительно не нужно использовать '$ и 'здесь, но в противном случае это выглядит нормально. Можете ли вы обновить свой вопрос, чтобы включить примерный документ, который либо не возвращается, либо исключен, как ожидалось? – JohnnyHK