Vergelijk like met like
De _id
key in mongo is (standaard) geen string - het is een mongo objectId.
Je moet met hetzelfde type vergelijken om een zinvol resultaat te krijgen:
var ObjectId = require('mongodb').ObjectID;
var oid = new ObjectId();
db.things.find(_id: {$gt: oid});
Lees mongoexport-bestanden niet
Mongo-exportbestanden zien er als volgt uit:
{ "_id" : { "$oid" : "4f876b00c56da1fa6a000030" }, ...
Dit is een json-representatie van een object-ID. Mongo wil niet dat je dat soort syntaxis gebruikt wanneer je de db daadwerkelijk ondervraagt. Dit werkt niet:
# will not work
db.things.find("_id.$oid": {$gt: "string"});
id als string
Als je de id als een string hebt, zou je het volgende doen:
var ObjectId = require('mongodb').ObjectID;
var str = "123456789012345678901234";
var oid = new ObjectId(str);
db.things.find(_id: {$gt: oid});
id als gedeeltelijk tekenreeks
Als de string die je hebt geen geldige oid is (niet 24 tekens lang), krijg je gewoon een uitzondering van mongo - of, afhankelijk van je driver, een nieuwe oid. Als je een gedeeltelijk object-ID hebt, kun je met nullen vullen om een geldige oid te maken en daarom het vinden door middel van gedeeltelijke object-ID's mogelijk te maken. bijv.:
var ObjectId = require('mongodb').ObjectID;
var oid = new ObjectId(str + "0000");
db.things.find(_id: {$gt: oid});