sql >> Database >  >> NoSQL >> MongoDB

Een document ophalen in MongoDB zonder verzameling op te geven

Ja, maar niet op een schaalbare manier (omdat je elke collectie moet opvragen). Als je 2 of 3 collecties hebt, is dit misschien goed, maar... je moet waarschijnlijk je ontwerp herzien om erachter te komen waarom je dit doet. Waarom ben je trouwens?

  1. Je krijgt een lijst van alle collecties in de database.
  2. U loopt er doorheen en zoekt op basis van _id

Voorbeeld shell-code:

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

geeft:4f62635623809b75e6b8853c was found in test2



  1. MongoDB Projectie van een subdocument

  2. 3 manieren om een ​​string om te zetten naar een datum in MongoDB

  3. Kan geen verbinding maken met Mongo Cloud mongodb Database in Golang op Ubuntu

  4. Toestemming geweigerd wanneer het 'mongod'-commando wordt uitgevoerd na een succesvolle installatie