MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Nhận tài liệu trong MongoDB mà không chỉ định bộ sưu tập

Có, nhưng không phải theo cách có thể mở rộng (vì bạn phải truy vấn từng bộ sưu tập). Nếu bạn có 2 hoặc 3 bộ sưu tập, điều này có thể ổn, nhưng ... bạn có thể nên xem lại thiết kế của mình để tìm ra lý do tại sao bạn lại làm điều này. Nhân tiện, tại sao lại là bạn?

  1. Bạn nhận được danh sách tất cả các bộ sưu tập trong cơ sở dữ liệu.
  2. Bạn lặp lại chúng và truy vấn dựa trên _id

Mã vỏ mẫu:

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

cho:4f62635623809b75e6b8853c was found in test2



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. BadYieldError khi sử dụng find () Motor [MongoDB + Tornado]

  2. MongoMapper gần với maxDistance - Mongo ::OperationFailure:giá trị địa lý phải là số:

  3. Làm cách nào để kích hoạt libmongoc ssl trong PHP 7 cho kết nối Mongodb?

  4. Làm cách nào để lấy mảng từ bộ sưu tập mongoDB?

  5. Ứng dụng Multi-Tenant Rails 3 trên Heroku sử dụng PostgreSQL