MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

consulta mongoDB WHERE _id> limite

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