JavaScript Date অবজেক্ট ম্যানিপুলেট করে MongoDB-এ তারিখ আপডেট
MongoDB শেলে JavaScript-এ Date অবজেক্ট তৈরি করে setDate(), getDate() ব্যবহার করে দিন বাড়ানো/কমানো যায়, তারপর $set বা $currentDate দিয়ে আপডেট করা হয়।
উদাহরণ: ডেটা ইনসার্ট (DueDate: null)
> db.demo168.insertOne({"DueDate":null});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3695ae9e4f06af551997d6") }
প্রদর্শন
> db.demo168.find();
আউটপুট:
{ "_id" : ObjectId("5e3695ae9e4f06af551997d6"), "DueDate" : null }
JavaScript-এ তারিখ ইনক্রিমেন্ট ও আপডেট
> var t = new Date();
> t.setDate(t.getDate()+1); // ১ দিন যোগ
1580722089017
> var dat = new Date();
> dat.setDate(dat.getDate()+2); // ২ দিন যোগ
1580808489085
> db.demo168.update(
... { "_id": ObjectId("5e3695ae9e4f06af551997d6") },
... { "$currentDate": { "DueDate": true }, "$set": { "DueDate1": t, "DueDate2": dat } }
... )
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
আপডেট পর পরিদর্শন
> db.demo168.find();
আউটপুট:
{ "_id" : ObjectId("5e3695ae9e4f06af551997d6"), "DueDate" : ISODate("2020-02-02T09:28:09.308Z"), "DueDate1" : ISODate("2020-02-03T09:28:09.017Z"), "DueDate2" : ISODate("2020-02-04T09:28:09.085Z") }
ব্যাখ্যা
new Date()— বর্তমান সময়।t.setDate(t.getDate()+1)— তারিখ ১ বাড়িয়েছে (মাস/বছর অটো হ্যান্ডেল)۔$currentDate: {DueDate: true}— সার্ভার টাইমস্ট্যাম্প সেট করে (আপডেট টাইম)۔$set: {DueDate1: t, DueDate2: dat}— ক্লায়েন্ট-সাইড ক্যালকুলেটেড ডেট সেট।
সতর্কতা: ক্লায়েন্ট ও সার্ভার টাইম ভিন্ন হলে ডেটা ইনকনসিস্টেন্ট হয়। প্রোডাকশনে সার্ভার-সাইড $$NOW (aggregation) বা অ্যাপ্লিকেশন লেভেলে UTC ব্যবহার করুন।