sql >> Databasteknik >  >> NoSQL >> MongoDB

mongoDB-fråga WHERE _id> tröskel

Jämför gilla med gilla

_id nyckel i mongo är inte (som standard) en sträng - det är ett mongo objekt-ID.

Du måste jämföra med samma typ för att få ett meningsfullt resultat:

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

Läs inte mongoexport-filer

Mongo exportfiler ser ut så här:

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

Detta är en json-representation av ett objekt-id. Mongo vill inte att du ska använda den typen av syntax när du faktiskt frågar efter db. Detta kommer inte att fungera:

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

id som en sträng

Om du har id:t som en sträng gör du:

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

id som en delvis sträng

Om strängen du har inte är en giltig oid (inte 24 tecken lång), får du bara ett undantag från mongo - eller beroende på din förare, en ny oid. Om du har ett partiellt objekt-id kan du fylla på med nollor för att göra en giltig oid och därför tillåta att hitta med partiella objekt-id. t.ex.:

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



  1. Behöver du JPA när du använder MongoDB?

  2. MongoDB:Hur frågar jag över en json-sträng?

  3. Mongo - fråga, inbäddat dokument matchar inte förutom punktnotation

  4. Hur man $setDifference i array &Object med Mongo DB