sql >> Databáze >  >> NoSQL >> MongoDB

dotaz mongoDB WHERE _id> práh

Porovnat like s like

_id klíč v mongo není (ve výchozím nastavení) řetězec - je to mongo objectId.

Chcete-li získat smysluplný výsledek, musíte porovnat se stejným typem:

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

Nečtěte soubory mongoexport

Soubory exportu Mongo vypadají takto:

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

Toto je json reprezentace ID objektu. Mongo nechce, abyste používali tento druh syntaxe při skutečném dotazování na db. Toto nebude fungovat:

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

id jako řetězec

Pokud máte id jako řetězec, udělali byste:

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

id jako částečné řetězec

Pokud řetězec, který máte, není platný oid (není 24 znaků dlouhý), dostanete pouze výjimku z mongo - nebo v závislosti na vašem ovladači nový oid. Pokud máte částečné ID objektu, můžete doplnit 0, abyste vytvořili platný oid, a umožnili tak hledání pomocí částečných ID objektů. např.:

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



  1. Nelze najít modul 'socket.io/node_modules/redis'

  2. nelze se připojit k kontejneru redis z kontejneru aplikace

  3. Ovlivňuje délka jména výkon v Redis?

  4. Přečtěte si soubor z mongo shellu