sql >> Database >  >> NoSQL >> MongoDB

mongoDB-query WHERE _id> drempel

Vergelijk like met like

De _id key in mongo is (standaard) geen string - het is een mongo objectId.

Je moet met hetzelfde type vergelijken om een ​​zinvol resultaat te krijgen:

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

Lees mongoexport-bestanden niet

Mongo-exportbestanden zien er als volgt uit:

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

Dit is een json-representatie van een object-ID. Mongo wil niet dat je dat soort syntaxis gebruikt wanneer je de db daadwerkelijk ondervraagt. Dit werkt niet:

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

id als string

Als je de id als een string hebt, zou je het volgende doen:

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

id als gedeeltelijk tekenreeks

Als de string die je hebt geen geldige oid is (niet 24 tekens lang), krijg je gewoon een uitzondering van mongo - of, afhankelijk van je driver, een nieuwe oid. Als je een gedeeltelijk object-ID hebt, kun je met nullen vullen om een ​​geldige oid te maken en daarom het vinden door middel van gedeeltelijke object-ID's mogelijk te maken. bijv.:

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



  1. waarom neemt het geheugengebruik van redis niet af wanneer de helft van de toetsen wordt verwijderd?

  2. Mongodb sorteren met hoofdletterongevoelige manier

  3. Hoe upsert met mongodb-java-driver

  4. Alpakka MongoDB - specificeer het type in MongoSource