MongoDB-তে runCommand এবং getLastError ব্যবহার করে আপডেট হওয়া ডকুমেন্টের সংখ্যা জানা
MongoDB-তে আপডেট অপারেশনের পর কতগুলো ডকুমেন্ট আপডেট হয়েছে সেটি জানতে runCommand সহ getlasterror ব্যবহার করতে হয়।
ধাপ ১: ডকুমেন্টসহ কালেকশন তৈরি করুন
> db.getNumberOfUpdatedDocumentsDemo.insertOne({"StudentName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ca28c1d6304881c5ce84bad") }
> db.getNumberOfUpdatedDocumentsDemo.insertOne({"StudentName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ca28c226304881c5ce84bae") }
> db.getNumberOfUpdatedDocumentsDemo.insertOne({"StudentName":"Robert"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ca28c276304881c5ce84baf") }
> db.getNumberOfUpdatedDocumentsDemo.insertOne({"StudentName":"Ramit"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ca28c366304881c5ce84bb0") }
> db.getNumberOfUpdatedDocumentsDemo.insertOne({"StudentName":"Adam"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ca28c436304881c5ce84bb1") }
ধাপ ২: সব ডকুমেন্ট প্রদর্শন করুন
> db.getNumberOfUpdatedDocumentsDemo.find().pretty();
আউটপুট:
{
"_id" : ObjectId("5ca28c1d6304881c5ce84bad"),
"StudentName" : "David"
}
{
"_id" : ObjectId("5ca28c226304881c5ce84bae"),
"StudentName" : "Chris"
}
{
"_id" : ObjectId("5ca28c276304881c5ce84baf"),
"StudentName" : "Robert"
}
{
"_id" : ObjectId("5ca28c366304881c5ce84bb0"),
"StudentName" : "Ramit"
}
{
"_id" : ObjectId("5ca28c436304881c5ce84bb1"),
"StudentName" : "Adam"
}
ধাপ ৩: সব ডকুমেন্ট আপডেট করুন
> db.getNumberOfUpdatedDocumentsDemo.update({}, {$set : {"StudentName" : "Carol"}}, true, true);
WriteResult({ "nMatched" : 5, "nUpserted" : 0, "nModified" : 5 })
ধাপ ৪: আপডেট হওয়া ডকুমেন্টের সংখ্যা জানুন
> db.runCommand( "getlasterror" );
ফলাফল:
{
"connectionId" : 4,
"updatedExisting" : true,
"n" : 5,
"syncMillis" : 0,
"writtenTo" : null,
"err" : null,
"ok" : 1
}
লক্ষ্য করুন: আউটপুটে "n" : 5 বোঝাচ্ছে ৫টি ডকুমেন্ট আপডেট হয়েছে।
ধাপ ৫: আপডেট হওয়া ডকুমেন্টগুলো যাচাই করুন
> db.getNumberOfUpdatedDocumentsDemo.find().pretty();
ফলাফল:
{
"_id" : ObjectId("5ca28c1d6304881c5ce84bad"),
"StudentName" : "Carol"
}
{
"_id" : ObjectId("5ca28c226304881c5ce84bae"),
"StudentName" : "Carol"
}
{
"_id" : ObjectId("5ca28c276304881c5ce84baf"),
"StudentName" : "Carol"
}
{
"_id" : ObjectId("5ca28c366304881c5ce84bb0"),
"StudentName" : "Carol"
}
{
"_id" : ObjectId("5ca28c436304881c5ce84bb1"),
"StudentName" : "Carol"
}
ব্যাখ্যা: update() মেথডের চতুর্থ প্যারামিটার true (multi) দিয়ে সব মিলে যাওয়া ডকুমেন্ট আপডেট করা হয়েছে। db.runCommand("getlasterror") কমান্ডটি শেষ লেখা অপারেশনের তথ্য রিটার্ন করে, যেখানে n ফিল্ডে আপডেট হওয়া ডকুমেন্টের সংখ্যা থাকে।
আধুনিক পদ্ধতি: MongoDB নতুন ভার্সনে db.collection.updateMany() ব্যবহার করলে রেজাল্ট অবজেক্টে সরাসরি modifiedCount ফিল্ডে আপডেট হওয়া ডকুমেন্টের সংখ্যা পাওয়া যায়।