MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

mongoDB-Abfrage WHERE _id> Schwellenwert

Gleiches mit Gleichem vergleichen

Die _id Der Schlüssel in Mongo ist (standardmäßig) kein String, sondern eine Mongo-Objekt-ID.

Sie müssen mit demselben Typ vergleichen, um ein aussagekräftiges Ergebnis zu erhalten:

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

Mongoexport-Dateien nicht lesen

Mongo-Exportdateien sehen folgendermaßen aus:

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

Dies ist eine JSON-Darstellung einer Objekt-ID. Mongo möchte nicht, dass Sie diese Art von Syntax verwenden, wenn Sie die Datenbank tatsächlich abfragen. Das wird nicht funktionieren:

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

id als Zeichenfolge

Wenn Sie die ID als Zeichenfolge haben, würden Sie Folgendes tun:

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

id als Teil Zeichenkette

Wenn die Zeichenfolge, die Sie haben, keine gültige OID ist (nicht 24 Zeichen lang), erhalten Sie nur eine Ausnahme von Mongo - oder je nach Treiber eine neue OID. Wenn Sie eine partielle Objekt-ID haben, können Sie mit 0en auffüllen, um eine gültige oid zu erstellen und somit die Suche nach partiellen Objekt-IDs zu ermöglichen. zB:

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