sql >> Base de Datos >  >> NoSQL >> MongoDB

Obtenga un documento en MongoDB sin especificar la colección

Sí, pero no de forma escalable (ya que debes consultar cada colección). Si tiene 2 o 3 colecciones, esto podría estar bien, pero... probablemente debería revisar su diseño para averiguar por qué está haciendo esto. ¿Por qué, por cierto?

  1. Obtienes una lista de todas las colecciones en la base de datos.
  2. Los recorre y realiza consultas basadas en _id

Ejemplo de código de shell:

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); 
});  

da:4f62635623809b75e6b8853c was found in test2