Comparar lo similar con lo similar
El _id
la clave en mongo no es (por defecto) una cadena, es un objectId de mongo.
Debe comparar con el mismo tipo para obtener un resultado significativo:
var ObjectId = require('mongodb').ObjectID;
var oid = new ObjectId();
db.things.find(_id: {$gt: oid});
No leer archivos de exportación mongo
Los archivos de exportación de Mongo se ven así:
{ "_id" : { "$oid" : "4f876b00c56da1fa6a000030" }, ...
Esta es una representación json de una identificación de objeto. Mongo no quiere que uses ese tipo de sintaxis cuando consultas la base de datos. Esto no funcionará:
# will not work
db.things.find("_id.$oid": {$gt: "string"});
id como una cadena
Si tiene la identificación como una cadena, haría:
var ObjectId = require('mongodb').ObjectID;
var str = "123456789012345678901234";
var oid = new ObjectId(str);
db.things.find(_id: {$gt: oid});
id como parcial cadena
Si la cadena que tiene no es un oid válido (no tiene 24 caracteres), solo obtendrá una excepción de mongo, o dependiendo de su controlador, un nuevo oid. Si tiene una identificación de objeto parcial, puede rellenar con 0 para hacer un oid válido y, por lo tanto, permitir la búsqueda por identificaciones de objetos parciales. por ejemplo:
var ObjectId = require('mongodb').ObjectID;
var oid = new ObjectId(str + "0000");
db.things.find(_id: {$gt: oid});