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

MongoDB-এ তারিখকে টাইমস্ট্যাম্পে কনভার্ট করা

MongoDB-এ ISODate কে টাইমস্ট্যাম্প (মিলিসেকেন্ড) এ কনভার্ট করতে অ্যাগ্রিগেশন পাইপলাইনে $toLong অপারেটর ব্যবহার করা হয়।

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

> db.demo93.insertOne({"UserName":"Chris","ArrivalDate":new ISODate("2020-10-01")});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2d4b6479799acab037af68") }
> db.demo93.insertOne({"UserName":"David","ArrivalDate":new ISODate("2019-12-31")});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2d4b7379799acab037af69") }

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

> db.demo93.find();

আউটপুট:

{ "_id" : ObjectId("5e2d4b6479799acab037af68"), "UserName" : "Chris", "ArrivalDate" : ISODate("2020-10-01T00:00:00Z") }
{ "_id" : ObjectId("5e2d4b7379799acab037af69"), "UserName" : "David", "ArrivalDate" : ISODate("2019-12-31T00:00:00Z") }

টাইমস্ট্যাম্পে কনভার্ট করার কোয়ারী

$match দিয়ে "Chris" ফিল্টার করা হয়েছে, তারপর $addFields এবং $toLong দিয়ে টাইমস্ট্যাম্প বের করা হয়েছে:

> db.demo93.aggregate([
...   { "$match": { "UserName": "Chris" }},
...   { "$addFields": {
...     "timestamp": { "$toLong": "$ArrivalDate" }
...   }}
... ]);

ফলাফল

{ "_id" : ObjectId("5e2d4b6479799acab037af68"), "UserName" : "Chris", "ArrivalDate" : ISODate("2020-10-01T00:00:00Z"), "timestamp" : NumberLong("1601510400000") }

ব্যাখ্যা:

  • $toLong - ISODate কে ১৯৭০ সালের ১ জানুয়ারি থেকে মিলিসেকেন্ডে কনভার্ট করে (Unix timestamp × 1000)
  • NumberLong - ৬৪-বিট ইন্টিজার টাইপ (MongoDB শেলে প্রদর্শনের জন্য)
  • ১৬০১৫১০৪০০০০০ মিলিসেকেন্ড = ২০২০-১০-০১ ০০:০০:০০ UTC

অন্যান্য টাইম কনভার্সন অপারেটর:

  • $toDate - টাইমস্ট্যাম্প/স্ট্রিং থেকে ISODate
  • $dateToString - ISODate থেকে ফরম্যাটেড স্ট্রিং (যেমন: "%Y-%m-%d")
  • $dateFromString - স্ট্রিং থেকে ISODate

নোট: $toLong MongoDB 4.0+ ভার্সনে উপলব্ধ। পুরানো ভার্সনে { $subtract: [ "$ArrivalDate", new Date(0) ] } ব্যবহার করতে হতো।

  1. পাইথন ডেটকে Unix টাইমস্ট্যাম্পে কনভার্ট করার পদ্ধতি

  2. পাইথনে ইউনিক্স টাইমস্ট্যাম্প স্ট্রিংকে পঠনীয় ডেটে কনভার্ট করবেন?

  3. পাইথনে ডেটকে datetime-এ কনভার্ট করবেন?

  4. ইউনিক্স ইপক টাইম (Unix Epoch Time) বোঝা: টাইমস্ট্যাম্পকে মানব-পঠনীয় তারিখে রূপান্তর