MongoDB - Multiple $or operations

Mike picture Mike · Mar 1, 2011 · Viewed 21.1k times · Source

How would I have multiple $or operations? So far I've tried the following but it silently ignores the 2nd $or.

{
  $or: [{a: 2}, {a: 3}], 
  $or: [{b: 5}, {b: 4}]
}

I assume this is because I'm using two identical keys. Is there any way around this?

Answer

Nader picture Nader · Nov 15, 2011

Mongo 2.0 added an $and operator, so you can do a query like this:

db.things.find({$and: [{$or : [{'a':1},{'b':2}]},{$or : [{'a':2},{'b':3}]}] })

http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24and