Comparar gosto com gosto
O
_id
key no mongo não é (por padrão) uma string - é um objectId do mongo. Você precisa comparar com o mesmo tipo para obter um resultado significativo:
var ObjectId = require('mongodb').ObjectID;
var oid = new ObjectId();
db.things.find(_id: {$gt: oid});
Não leia arquivos mongoexport
Os arquivos de exportação do Mongo são assim:
{ "_id" : { "$oid" : "4f876b00c56da1fa6a000030" }, ...
Esta é uma representação json de um id de objeto. O Mongo não quer que você use esse tipo de sintaxe ao consultar o banco de dados. Isso não funcionará:
# will not work
db.things.find("_id.$oid": {$gt: "string"});
id como uma string
Se você tiver o id como uma string, você faria:
var ObjectId = require('mongodb').ObjectID;
var str = "123456789012345678901234";
var oid = new ObjectId(str);
db.things.find(_id: {$gt: oid});
id como parcial seqüência
Se a string que você possui não for um oid válido (não 24 caracteres), você receberá apenas uma exceção do mongo - ou, dependendo do seu driver, um novo oid. Se você tiver um id de objeto parcial, você pode preencher com 0s para criar um oid válido e, portanto, permitir a localização por ids de objeto parciais. por exemplo.:
var ObjectId = require('mongodb').ObjectID;
var oid = new ObjectId(str + "0000");
db.things.find(_id: {$gt: oid});