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

MongoDB-এ অ্যারে আইটেমে $dateToString প্রয়োগ করা

MongoDB-এ অ্যারেতে নেস্টেড ডেট ফিল্ডকে স্ট্রিং ফরম্যাটে কনভার্ট করতে অ্যাগ্রিগেশন পাইপলাইনে $map এবং $dateToString অপারেটর একসাথে ব্যবহার করা হয়।

কলেকশন এবং ডকুমেন্ট তৈরি

> db.demo104.insertOne({
...   "AppName" : "Online Book",
...   "Details" : [
...     {
...       "ClientName" : "Chris",
...       "Deadline" : new ISODate("2020-03-10")
...     }
...   ]
... });
{ "acknowledged" : true, "insertedId" : ObjectId("5e2ed7fd9fd5fd66da21446f") }

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

> db.demo104.find().pretty();

আউটপুট:

{ "_id" : ObjectId("5e2ed7fd9fd5fd66da21446f"), "AppName" : "Online Book", "Details" : [ { "ClientName" : "Chris", "Deadline" : ISODate("2020-03-10T00:00:00Z") } ] }

$dateToString প্রয়োগ করার কোয়ারী

$project স্টেজে $map ব্যবহার করে Details অ্যারের প্রতিটি এলিমেন্টের Deadline ফিল্ডকে "%m" ফরম্যাটে (মাস নম্বর) কনভার্ট করা হয়েছে:

> db.demo104.aggregate([
...   { "$match": {} },
...   { "$project": {
...     "title": 1,
...     "Details": {
...       "$map": {
...         "input": "$Details",
...         "as": "out",
...         "in": {
...           "ClientName": "$$out.ClientName",
...           "Deadline": {
...             "$dateToString": { "format": "%m", "date": "$$out.Deadline" }
...           }
...         }
...       }
...     }
...   }}
... ]);

ফলাফল

{ "_id" : ObjectId("5e2ed7fd9fd5fd66da21446f"), "Details" : [ { "ClientName" : "Chris", "Deadline" : "03" } ] }

ব্যাখ্যা:

  • $map - ইনপুট অ্যারের ($Details) প্রতিটি এলিমেন্ট ($$out) কে ট্রান্সফর্ম করে নতুন অ্যারে বানায়
  • $$out.ClientName - মূল এলিমেন্টের ClientName কপি করা
  • $dateToString - ডেট অবজেক্টকে নির্দিষ্ট ফরম্যাটে স্ট্রিংয়ে কনভার্ট করে
  • format: "%m" - মাস নম্বর (০১-১২)। অন্যান্য ফরম্যাট: %Y (বছর), %d (দিন), %H (ঘণ্টা), %M (মিনিট), %S (সেকেন্ড)

সাধারণ ডেট ফরম্যাট উদাহরণ:

ফরম্যাটফলাফল (২০২০-০৩-১০)
%Y-%m-%d2020-03-10
%d/%m/%Y10/03/2020
%H:%M:%S00:00:00
%Y-%m-%dT%H:%M:%S.%LZ2020-03-10T00:00:00.000Z

নোট: $dateToString MongoDB 3.6+ এ উপলব্ধ। টাইমজোন সেট করতে timezone ফিল্ড যোগ করুন: {format: "%Y-%m-%d", date: "$$out.Deadline", timezone: "+06:00"}।

  1. MongoDB-এ অ্যারে আইটেম গণনা করার পদ্ধতি

  2. MongoDB-এ অ্যারেতে $in অপারেটর ইমপ্লিমেন্ট করা

  3. MongoDB-এ updateOne এবং $push ব্যবহার করে নেস্টেড অ্যারে আপডেট করা

  4. MongoDB-এ অ্যারে ম্যাচের জন্য $all অপারেটর ব্যবহার করা