Сравнете подобно с подобно
_id
ключът в mongo не е (по подразбиране) низ - той е mongo objectId.
Трябва да сравните със същия тип, за да получите значим резултат:
var ObjectId = require('mongodb').ObjectID;
var oid = new ObjectId();
db.things.find(_id: {$gt: oid});
Не четете mongoexport файлове
Файловете за експортиране на Mongo изглеждат така:
{ "_id" : { "$oid" : "4f876b00c56da1fa6a000030" }, ...
Това е json представяне на идентификатор на обект. Mongo не иска да използвате този вид синтаксис, когато всъщност правите заявки към db. Това няма да работи:
# will not work
db.things.find("_id.$oid": {$gt: "string"});
id като низ
Ако имате идентификатора като низ, бихте направили:
var ObjectId = require('mongodb').ObjectID;
var str = "123456789012345678901234";
var oid = new ObjectId(str);
db.things.find(_id: {$gt: oid});
id като частичен низ
Ако низът, който имате, не е валиден oid (не е дълъг 24 символа), просто ще получите изключение от mongo - или в зависимост от вашия драйвер, нов oid. Ако имате частичен идентификатор на обект, можете да добавите 0s, за да направите валиден оид и следователно да разрешите намирането чрез частични идентификатори на обекти. напр.:
var ObjectId = require('mongodb').ObjectID;
var oid = new ObjectId(str + "0000");
db.things.find(_id: {$gt: oid});