MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

query mongoDB WHERE _id> soglia

Confronta mi piace con mi piace

Il _id key in mongo non è (per impostazione predefinita) una stringa:è un mongo objectId.

Devi confrontare con lo stesso tipo per ottenere un risultato significativo:

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

Non leggere i file mongoexport

I file di esportazione Mongo hanno il seguente aspetto:

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

Questa è una rappresentazione json di un ID oggetto. Mongo non vuole che tu usi quel tipo di sintassi quando interroghi effettivamente il db. Questo non funzionerà:

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

id come stringa

Se hai l'id come stringa, faresti:

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

id come parziale stringa

Se la stringa che hai non è un oid valido (non lungo 24 caratteri), otterrai solo un'eccezione da mongo o, a seconda del tuo driver, un nuovo oid. Se hai un ID oggetto parziale puoi riempire con 0 per creare un oid valido e quindi consentire la ricerca per ID oggetto parziale. es.:

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