MongoDB শেলে একটি ডকুমেন্ট লোড করে, তার অ্যারে ফিল্ডে জাভাস্ক্রিপ্টের pop() মেথড ব্যবহার করে শেষ এলিমেন্ট মুছে ফেলা যায়, তারপর save() দিয়ে আপডেট করতে হয়।
উদাহরণ
অ্যারে ফিল্ড সহ ডকুমেন্ট তৈরি করুন:
> db.persistChangeDemo.insertOne({ "Name": "Larry", "CreditScore": [500, 700, 760, 100] });
{ "acknowledged" : true, "insertedId" : ObjectId("5cdfc52cbf3115999ed51203") }
ডকুমেন্টটি দেখুন:
> db.persistChangeDemo.find().pretty();
আউটপুট:
{ "_id" : ObjectId("5cdfc52cbf3115999ed51203"), "Name" : "Larry", "CreditScore" : [ 500, 700, 760, 100 ] }
শেষ এলিমেন্ট (100) পপ করা
> var myDocument = db.persistChangeDemo.findOne({ "Name": "Larry" });
> myDocument.CreditScore.pop();
100
ডকুমেন্টটি সেভ করা:
> db.persistChangeDemo.save(myDocument);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
আপডেট হওয়ার পর ডকুমেন্টটি যাচাই করুন:
> db.persistChangeDemo.find().pretty();
আউটপুট:
{ "_id" : ObjectId("5cdfc52cbf3115999ed51203"), "Name" : "Larry", "CreditScore" : [ 500, 700, 760 ] }
ব্যাখ্যা:
findOne()— ডকুমেন্টটি ভেরিয়েবলে লোড করা হয়েছে।pop()— জাভাস্ক্রিপ্ট অ্যারে মেথড, শেষ এলিমেন্ট মুছে দিয়েছে।save()— পরিবর্তনসহ ডকুমেন্টটি ডাটাবেসে আপডেট করা হয়েছে।
সতর্কতা: এটি শেল-সাইড অপারেশন। অ্যাপ্লিকেশন কোডে (Node.js, Python ইত্যাদি) অ্যারে ম্যানিপুলেশন করে updateOne বা replaceOne ব্যবহার করুন। MongoDB-এ সরাসরি পপ করার জন্য $pop অপারেটর আছে: { $pop: { CreditScore: 1 } } (শেষ), { $pop: { CreditScore: -1 } } (শুরু)।