sql >> Databasteknik >  >> NoSQL >> MongoDB

Få ett dokument i MongoDB utan att ange insamling

Ja, men inte på ett skalbart sätt (eftersom du måste fråga varje samling). Om du har 2 eller 3 samlingar kan det här vara ok, men... du borde förmodligen se över din design för att ta reda på varför du gör det här. Varför är du det, förresten?

  1. Du får en lista över alla samlingar i databasen.
  2. Du går igenom dem och frågar utifrån _id

Exempel på skalkod:

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

ger:4f62635623809b75e6b8853c was found in test2



  1. Kan inte ansluta till lokal mongoDB från java

  2. Korrekt hantering av asynkrona Mongo-åtgärder i Node Promise

  3. Mongodb i linux-server

  4. mongodb count vs hitta med count