sql >> Base de Datos >  >> NoSQL >> MongoDB

consulta mongoDB DONDE _id> umbral

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});