Porovnat like s like
_id
klíč v mongo není (ve výchozím nastavení) řetězec - je to mongo objectId.
Chcete-li získat smysluplný výsledek, musíte porovnat se stejným typem:
var ObjectId = require('mongodb').ObjectID;
var oid = new ObjectId();
db.things.find(_id: {$gt: oid});
Nečtěte soubory mongoexport
Soubory exportu Mongo vypadají takto:
{ "_id" : { "$oid" : "4f876b00c56da1fa6a000030" }, ...
Toto je json reprezentace ID objektu. Mongo nechce, abyste používali tento druh syntaxe při skutečném dotazování na db. Toto nebude fungovat:
# will not work
db.things.find("_id.$oid": {$gt: "string"});
id jako řetězec
Pokud máte id jako řetězec, udělali byste:
var ObjectId = require('mongodb').ObjectID;
var str = "123456789012345678901234";
var oid = new ObjectId(str);
db.things.find(_id: {$gt: oid});
id jako částečné řetězec
Pokud řetězec, který máte, není platný oid (není 24 znaků dlouhý), dostanete pouze výjimku z mongo - nebo v závislosti na vašem ovladači nový oid. Pokud máte částečné ID objektu, můžete doplnit 0, abyste vytvořili platný oid, a umožnili tak hledání pomocí částečných ID objektů. např.:
var ObjectId = require('mongodb').ObjectID;
var oid = new ObjectId(str + "0000");
db.things.find(_id: {$gt: oid});