Sammenlign like med like
_id
nøgle i mongo er ikke (som standard) en streng - det er et mongo objekt-id.
Du skal sammenligne med den samme type for at få et meningsfuldt resultat:
var ObjectId = require('mongodb').ObjectID;
var oid = new ObjectId();
db.things.find(_id: {$gt: oid});
Læs ikke mongoexport-filer
Mongo-eksportfiler ser sådan ud:
{ "_id" : { "$oid" : "4f876b00c56da1fa6a000030" }, ...
Dette er en json-repræsentation af et objekt-id. Mongo vil ikke have, at du bruger den slags syntaks, når du rent faktisk forespørger i db. Dette vil ikke virke:
# will not work
db.things.find("_id.$oid": {$gt: "string"});
id som en streng
Hvis du har id'et som en streng, skal du gøre:
var ObjectId = require('mongodb').ObjectID;
var str = "123456789012345678901234";
var oid = new ObjectId(str);
db.things.find(_id: {$gt: oid});
id som en delvis streng
Hvis strengen du har ikke er en gyldig oid (ikke 24 tegn lang), får du bare en undtagelse fra mongo - eller afhængigt af din driver, en ny oid. Hvis du har et delvist objekt-id, kan du udfylde med 0'er for at lave en gyldig oid og derfor tillade at finde med delvise objekt-id'er. f.eks.:
var ObjectId = require('mongodb').ObjectID;
var oid = new ObjectId(str + "0000");
db.things.find(_id: {$gt: oid});