How can I have a mongo query similar to the SQL “…WHERE _id > threshold”
I tried the following, but it doesn’t give me any result.
db.things.find(_id: {$gt: someid} });
Is it because the _id field is a little special, in that it has the format?
_id : {"$oid" : "someid"}
Compare like with like
The
_idkey in mongo is not (by default) a string – it is a mongo objectId.You need to compare to the same type to get a meaningful result:
Don’t read mongoexport files
Mongo export files look like this:
This is a json representation of an object id. Mongo doesn’t want you to use that kind of syntax when actually querying the db. This will not work:
id as a string
If you have the id as a string, you’d do:
id as a partial string
If the string you have is not a valid oid (not 24 chars long), you’ll just get an exception from mongo – or depending on your driver, a new oid. If you have a partial object id you can pad with 0s to make a valid oid and therefore permit finding by partial object ids. e.g.: