কম্পিউটার টিউটোরিয়াল

MongoDB-তে সব কলেকশন লুপ করে কুয়েরি এক্সিকিউট কীভাবে করবেন?

getCollectionNames() ব্যবহার করে লুপ

প্রথমে getCollectionNames() দিয়ে সব কলেকশনের নাম পাওয়া যায়, তারপর forEach দিয়ে প্রতিটি কলেকশনে কুয়েরি চালানো যায়।

উদাহরণ: প্রতিটি কলেকশনের লেটেস্ট ডকুমেন্টের টাইমস্ট্যাম্প পাওয়া

> db.getCollectionNames().forEach(function(collectionName) {
    var latestDoc = db[collectionName].find().sort({_id: -1}).limit(1);
    if (latestDoc.hasNext()) {
        printjson(latestDoc.next()._id.getTimestamp());
    }
});

আউটপুট নমুনা

ISODate("2019-02-21T18:52:43Z")
ISODate("2019-03-19T17:49:00Z")
ISODate("2019-03-06T15:40:12Z")
ISODate("2019-03-15T16:31:50Z")
... (অন্যান্য টাইমস্ট্যাম্প)

ব্যাখ্যা

  • db[collectionName] - ডাইনামিক্যালি কলেকশন এক্সেস
  • .sort({_id: -1}) - _id অনুযায়ী ডিসেন্ডিং সোর্ট (নতুনতম প্রথম)
  • .limit(1) - শুধু প্রথম ডকুমেন্ট নেওয়া
  • _id.getTimestamp() - ObjectId থেকে তৈরির সময় বের করা

ব্যবহারিক於: এই প্যাটার্নটি ব্যবহার করে আপনি সব কলেকশনে রক্ষণাবেক্ষণ কাজ, অডিটিং, বা রিপোর্টিং অটোমেট করতে পারেন।

  1. MongoDB-এ একই কোয়েরিতে গ্রুপ (Group) এবং ডISTINCT (Distinct) একসাথে করা

  2. MongoDB-এ স্টোরড ফাংশন এক্সিকিউট করা

  3. MongoDB-তে ফাইল নাম এবং লোকেশন সংরক্ষণ

  4. MongoDB-তে অ্যাগ্রিগেশন দিয়ে ডISTINCT সিলেক্ট এবং কাউন্ট করা