sql >> Database teknologi >  >> NoSQL >> MongoDB

Få et dokument i MongoDB uden at angive samling

Ja, men ikke på en skalerbar måde (da du skal forespørge hver samling). Hvis du har 2 eller 3 kollektioner, kan dette være ok, men... du bør nok gennemgå dit design for at finde ud af, hvorfor du gør dette. Hvorfor er du i øvrigt?

  1. Du får en liste over alle samlingerne i databasen.
  2. Du går gennem dem og forespørger baseret på _id

Eksempel på shell-kode:

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

giver:4f62635623809b75e6b8853c was found in test2



  1. Ugyldig operator '$size' i aggregering

  2. Hvordan sender socket.io beskeder på tværs af flere servere?

  3. MongoDB Driver 2.0 C# er der en måde at finde ud af om serveren er nede? Hvordan kører vi Ping-kommandoen i den nye driver?

  4. Hvad er MongoDB batch operation max størrelse?