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

Získejte dokument v MongoDB bez zadání kolekce

Ano, ale ne škálovatelným způsobem (protože musíte dotazovat každou kolekci). Pokud máte 2 nebo 3 kolekce, může to být v pořádku, ale... pravděpodobně byste měli zkontrolovat svůj design, abyste zjistili, proč to děláte. Mimochodem, proč jste?

  1. Obdržíte seznam všech sbírek v databázi.
  2. Procházíte je a dotazujete se na základě _id

Ukázkový kód shellu:

db.test1.save({});
db.test2.save({});  
db.test3.save({});
db.test4.save({});
db.test5.save({}); 
db.test6.save({});

db.test2.findOne(); // gives: { "_id" : ObjectId("4f62635623809b75e6b8853c") }

db.getCollectionNames().forEach(function(collName) {
   var doc = db.getCollection(collName).findOne({"_id" : ObjectId("4f62635623809b75e6b8853c")});
   if(doc != null) print(doc._id + " was found in " + collName); 
});  

dává:4f62635623809b75e6b8853c was found in test2



  1. Stránkování vnořených dokumentů v Mongoose

  2. Nelze vytvořit index v Azure DocumentDb s protokolem Mongodb

  3. mongoose dotaz:vyhledejte objekt podle id v poli

  4. Je možné redis na Heroku bez addonu?