keymongodb

MongoDB - Multiple $or operations


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?


Solution

  • 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