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

Jak přesně odpovídat celému dokumentu?

Nemyslím si, že je to možné přímo, ale možným řešením je hash dokumentu.

při ukládání vždy vytvořte hash dokumentu:

var doc = {};
delete doc.hash; // never include the hash itself in the calculation
doc.hash = crypto.createHash('sha256').update(JSON.stringify(doc)).digest();
db.collection.insert(doc);

Pak při dotazování můžete dotazovat pomocí hash:

db.collection.find({
  hash: hash
})

může být nepříjemné, pokud často provádíte atomické aktualizace dokumentu.



  1. Geoprostorový dotaz MongoDB s $not

  2. Aktualizační objekt MongoDb v poli při prvním výskytu od posledního

  3. MongoDB forEach()

  4. Použití multiprocessingového fondu z úlohy celer vyvolá výjimku