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

MongoDB-তে আপডেট করা ডকুমেন্টের সংখ্যা জানার পদ্ধতি


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 ফিল্ডে আপডেট হওয়া ডকুমেন্টের সংখ্যা পাওয়া যায়।

  1. MongoDB-তে একাধিক ডকুমেন্ট আপসার্ট করা

  2. MongoDB-এ ক্যাপড কালেকশন ব্যবহার করে ডকুমেন্ট সংখ্যা লিমিট করা

  3. MongoDB-এ ডকুমেন্ট সংখ্যা (Count) বের করা (count() / countDocuments())

  4. MongoDB-তে এমবেডেড ডকুমেন্ট কোয়েরি করা (aggregate + $unwind)