2016-04-12 2 views
3

давайте предположим, что я коллекция под название my_collection, с тремя документами:Как построить запрос для фильтрации по парам ключей в MongoDB?

{'_id": 1, 'foo': 'foo_val', 'bar': 'bar_val'}, 
{'_id": 2, 'foo': 'foo_val2', 'bar': 'bar_val2'}, 
{'_id": 3, 'foo': 'foo_val', 'bar': 'bar_val2'} 

Я хотел бы запросить его по заданному пару ключевых значений, в данном случае, например, Я хотел бы, чтобы отфильтровать его:

[{'foo': 'foo_val', 'bar': 'bar_val'}, {'foo': 'foo_val2', 'bar': 'bar_val2'}] 

поэтому он должен возвращать документы с идентификаторами 1 и 2.

It Есть элегантный способ сделать это за один вызов к БД? Я попытался использовать ключевое слово $in, но он не работает так, как я хочу.

ответ

4

Вы хотите использовать $or оператор:

db.your_collection.find({$or:[{'foo': 'foo_val', 'bar': 'bar_val'},{'foo': 'foo_val2', 'bar': 'bar_val2'}]}) 
+0

я чувствую себя так глупо сейчас, спасибо большое. – Progress1ve

+0

Не беспокойтесь об этом. Эти вещи не всегда очевидны – justcompile

Смежные вопросы