To me it wasn't immediately obvious from the MongoDB Advanced Query documentation that you can string together multiple operators to perform existence, membership, and greater/than that tests. And since JSON can get very messy (and long!) and the syntax is slightly different from the Javascript in the documentation, instead of passing JSON directly to the find method of your collection pass a dictionary and assign the various conditions
For example:
myq = {}
myq["batchstamp"] = b # a timestamp
myq["modbus_tcp_reference_num"] = {"$exists": True}
cur = coll.find( myq )
Although it doesn't appear much easier than passing
{'modbus_tcp_reference_num': {'$exists': True}, 'batchstamp': 999999999}
Once start adding additional conditions (themselves which may have dictionaries it is much easier and less error prone. Trust me!
2 comments:
Just updated the docs to note that: hopefully it's more obvious now.
http://www.mongodb.org/display/DOCS/Advanced+Queries
Kyle,
Thanks! Love MongoDB! Genuinely having fun learning how it works.
- mdf
Post a Comment