unwind query objects fields array mongodb filter

query - project mongodb



Consulta de mongoDB "DONDE_id> umbral" (1)

¿Cómo puedo tener una consulta de Mongo similar al SQL "... DONDE _id> umbral"

Intenté lo siguiente, pero no me da ningún resultado.

db.things.find(_id: {$gt: someid} });

¿Es porque el campo _id es un poco especial, ya que tiene el formato?

_id : {"$oid" : "someid"}


Comparar como con como

La clave _id en mongo no es (de forma predeterminada) una cadena, es un ID de objeto 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 mongoexport

Los archivos de exportación de Mongo se ven así:

{ "_id" : { "$oid" : "4f876b00c56da1fa6a000030" }, ...

Esta es una representación json de un id de objeto. Mongo no quiere que uses ese tipo de sintaxis cuando consultes la base de datos. Esto no funcionará:

# will not work db.things.find("_id.$oid": {$gt: "string"});

id como una cadena

Si tienes el id como una cadena, harías:

var ObjectId = require(''mongodb'').ObjectID; var str = "123456789012345678901234"; var oid = new ObjectId(str); db.things.find(_id: {$gt: oid});

ID como una cadena parcial

Si la cadena que tiene no es un oid válido (no tiene una longitud de 24 caracteres), solo obtendrá una excepción de mongo, o según su controlador, un oid nuevo. Si tiene un ID de objeto parcial, puede rellenar con 0s para hacer un oid válido y, por lo tanto, permitir la búsqueda por ID de objeto parciales. p.ej:

var ObjectId = require(''mongodb'').ObjectID; var oid = new ObjectId(str + "0000"); db.things.find(_id: {$gt: oid});