हां, लेकिन स्केलेबल तरीके से नहीं (क्योंकि आपको प्रत्येक संग्रह को क्वेरी करना होगा)। यदि आपके पास 2 या 3 संग्रह हैं, तो यह ठीक हो सकता है, लेकिन... आपको शायद यह पता लगाने के लिए अपने डिज़ाइन की समीक्षा करनी चाहिए कि आप ऐसा क्यों कर रहे हैं। वैसे आप क्यों हैं?
- आपको डेटाबेस में सभी संग्रहों की एक सूची मिलती है।
- आप उनके माध्यम से लूप करते हैं, और _id के आधार पर क्वेरी करते हैं
नमूना शेल कोड:
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);
});
देता है:4f62635623809b75e6b8853c was found in test2