Compare like with like
The _id
key 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:
var ObjectId = require('mongodb').ObjectID;
var oid = new ObjectId();
db.things.find(_id: {$gt: oid});
Don't read mongoexport files
Mongo export files look like this:
{ "_id" : { "$oid" : "4f876b00c56da1fa6a000030" }, ...
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:
# will not work
db.things.find("_id.$oid": {$gt: "string"});
id as a string
If you have the id as a string, you'd do:
var ObjectId = require('mongodb').ObjectID;
var str = "123456789012345678901234";
var oid = new ObjectId(str);
db.things.find(_id: {$gt: oid});
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.:
var ObjectId = require('mongodb').ObjectID;
var oid = new ObjectId(str + "0000");
db.things.find(_id: {$gt: oid});
var ObjectId = require('mongodb').ObjectID
– Dint