tags:

views:

141

answers:

3

So, MongoDB defaults to "AND" when finding records. For example:

db.users.find({age: {'$gte': 30}, {'$lte': 40}});

The above query finds users >= 30 AND <= 40 years old.

How would I find users <= 30 OR >= 40 years old?

+2  A: 

matt -i too researched the $or business and hit a brick wall. i had saved this little link on googlegroups and was going to follow up on it at some point:

http://groups.google.com/group/mongodb-user/browse_thread/thread/4ac6f67622b3b951

sorry to not have answered the question but just wanted to make you aware that others were looking for the same functionailty at the time i was tentatively looking at this.

you could of course (depending on the language implementation) use the linq provider for mongo.

jim

[edit] for linq stuff see - http://schotime.net/blog/index.php/2010/04/29/nosql-norm-mongodb-and-regular-expressions/

jim
Thanks for the heads up
Matt
+3  A: 

There is no OR operator, but they say you can still do it:

http://www.mongodb.org/display/DOCS/OR+operations+in+query+expressions

Anthony Potts
+2  A: 

There will be an or operator in the near future. The nightly Mongodb build has already an $or. You can also use $where and use JavaScript to express the or.

See http://groups.google.com/group/mongodb-user/browse_thread/thread/a9a4d8b863d84601

TTT