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

MongoDB-এ প্রতিদিন গড় ডকুমেন্ট কাউন্ট বের করা


গড় দৈনিক ডকুমেন্ট কাউন্ট: অ্যাগ্রিগেশন

MongoDB-এ একটি সময় পরিসরে মোট ডকুমেন্ট সংখ্যা এবং দিনের সংখ্যা দিয়ে গড় দৈনিক কাউন্ট বের করতে অ্যাগ্রিগেশন পাইপলাইন ব্যবহার করা হয়।

নমুনা ডেটা তৈরি

> db.demo451.insertOne({ DueDate: new ISODate("2020-03-15T10:50:35.000Z"), Value: 10 })
> db.demo451.insertOne({ DueDate: new ISODate("2020-03-14T10:50:35.000Z"), Value: 10 })
> db.demo451.insertOne({ DueDate: new ISODate("2020-03-13T10:50:35.000Z"), Value: 10 })

সমস্ত ডকুমেন্ট দেখানো

> db.demo451.find()

আউটপুট:

{ "_id": ObjectId("..."), "DueDate": ISODate("2020-03-15T10:50:35Z"), "Value": 10 }
{ "_id": ObjectId("..."), "DueDate": ISODate("2020-03-14T10:50:35Z"), "Value": 10 }
{ "_id": ObjectId("..."), "DueDate": ISODate("2020-03-13T10:50:35Z"), "Value": 10 }

গড় দৈনিক ভ্যালু বের করার কোয়েরি

> db.demo451.aggregate([
    { $match: { DueDate: { $lt: new ISODate() } } },
    { $group: {
        _id: null,
        olderDate: { $min: "$DueDate" },
        sumValue: { $sum: "$Value" }
    }},
    { $project: {
        _id: 0,
        averageValue: {
            $divide: [
                "$sumValue",
                { $divide: [
                    { $subtract: [new ISODate(), "$olderDate"] },
                    1000 * 60 * 60 * 24
                ]}
            ]
        }
    }}
])

ফলাফল:

{ "averageValue": 2.475558456547562 }

ব্যাখ্যা

  1. $match: ভবিষ্যতের ডেটা বাদ দিয়ে শুধু অতীত/বর্তমান ডেটা নেয়
  2. $group: সাবচেয়ে পুরনো ডেট (olderDate) এবং মোট ভ্যালু (sumValue) বের করে
  3. $project: গড় বের করার ফর্মুলা: sumValue / ((now - olderDate) in milliseconds / 86400000)
  4. মিলিসেকেন্ডকে দিনে রূপান্তর: ১০০০ × ৬০ × ৬০ × ২৪ = ৮৬,৪০০,০০০

সতর্কতা: এটি সময়ের সাথে সাথে পরিবর্তিত হবে কারণ new ISODate() বর্তমান সময় নেয়। প্রোডাকশনে নির্দিষ্ট এন্ড ডেট ব্যবহার করুন।

  1. MongoDB-এ কালেকশন থেকে সর্বোচ্চ মান বের করা

  2. MongoDB Group কোয়েরি ব্যবহার করে ডকুমেন্টে পুনরাবৃত্ত ماركের কাউন্ট বের করা

  3. MongoDB-এ ক্যাপড কালেকশন ব্যবহার করে ডকুমেন্ট সংখ্যা লিমিট করা

  4. MongoDB Aggregation-এ ডুপ্লিকেট নামের কাউন্ট ও সাবজেক্ট লিস্ট বের করা