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

MongoDB-এ নির্দিষ্ট ডেট ফরম্যাটে কোয়েরি ফিল্টার করা


নির্দিষ্ট ডেট ফরম্যাটে ফিল্টারিং

MongoDB-এ ডেট ফিল্ডকে স্ট্রিং ফরম্যাটে রূপান্তর করে ফিল্টার করতে $dateToString অপারেটর ব্যবহার করা হয়।

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

> db.demo433.insertOne({ "DueDate": new Date("2019-11-23") })
> db.demo433.insertOne({ "DueDate": new Date("2020-01-03") })

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

> db.demo433.find()

আউটপুট:

{ "_id": ObjectId("..."), "DueDate": ISODate("2019-11-23T00:00:00Z") }
{ "_id": ObjectId("..."), "DueDate": ISODate("2020-01-03T00:00:00Z") }

ডেট ফরম্যাটে ফিল্টার করার কোয়েরি

> db.demo433.aggregate([
    { $addFields: { 
        stringDate: { 
            $dateToString: { format: "%Y-%m-%d", date: "$DueDate" } 
        } 
    }},
    { $match: { "stringDate": "2020-01-03" }},
    { $project: { "stringDate": 0 }}
])

ফলাফল:

{ "_id": ObjectId("..."), "DueDate": ISODate("2020-01-03T00:00:00Z") }

ব্যাখ্যা

  • $dateToString: ডেট অবজেক্টকে নির্দিষ্ট ফরম্যাটে স্ট্রিং-এ রূপান্তর করে (এখানে YYYY-MM-DD)
  • $addFields: নতুন ফিল্ড stringDate যোগ করে
  • $match: স্ট্রিং ডেট দিয়ে ফিল্টার করে
  • $project: সাহায্যকারী ফিল্ডটি আউটপুট থেকে সরিয়ে দেয়

নোট: বড় ডেটাসেটে এই পদ্ধতিটি ইনডেক্স ব্যবহার করতে পারে না। পারফরম্যান্সের জন্য ডেট রেঞ্জ কোয়েরি ($gte, $lte) ভালো।

  1. MongoDB কোয়ারিতে নির্দিষ্ট কলাম সিলেক্ট করা

  2. MongoDB-তে ডেটা ইনসার্ট করার পদ্ধতি

  3. MongoDB $match ব্যবহার করে ডেট ম্যাচ করা

  4. MongoDB-এ এমবেডেড ডকুমেন্টের অ্যারে ফিল্টার করা (৩ লেভেল)