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

MongoDB-এ একসাথে একাধিক ডকুমেন্ট ইনসার্ট করা (insert() / insertMany())

MongoDB-এ একসাথে একাধিক ডকুমেন্ট ইনসার্ট করার জন্য insert() (লিগেসি) বা আধুনিক insertMany() মেথড ব্যবহার করা হয়। এটি বাল্ক ইনসার্টের জন্য দক্ষ এবং অটোমিক (atomic) নয় কিন্তু অর্ডার্ড (ordered) ডিফল্টে।

উদাহরণ: insert() ব্যবহার করে একাধিক ইনসার্ট (লিগেসি)

> db.demo689.insert([
    { ClientName: "Chris", "ClientAge": 34, "ClientCountryName": "US" },
    { ClientName: "David", "ClientAge": 28, "ClientCountryName": "UK" },
    { ClientName: "Bob", "ClientAge": 39, "ClientCountryName": "AUS" }
]);
BulkWriteResult({
    "writeErrors" : [ ],
    "writeConcernErrors" : [ ],
    "nInserted" : 3,
    "nUpserted" : 0,
    "nMatched" : 0,
    "nModified" : 0,
    "nRemoved" : 0,
    "upserted" : [ ]
})

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

> db.demo689.find();

আউটপুট:

{ "_id" : ObjectId("5ea580dfa7e81adc6a0b3967"), "ClientName" : "Chris", "ClientAge" : 34, "ClientCountryName" : "US" }
{ "_id" : ObjectId("5ea580dfa7e81adc6a0b3968"), "ClientName" : "David", "ClientAge" : 28, "ClientCountryName" : "UK" }
{ "_id" : ObjectId("5ea580dfa7e81adc6a0b3969"), "ClientName" : "Bob", "ClientAge" : 39, "ClientCountryName" : "AUS" }

আধুনিক সিনট্যাক্স: insertMany() (MongoDB 3.2+)

> db.demo689.insertMany([
    { ClientName: "Chris", ClientAge: 34, ClientCountryName: "US" },
    { ClientName: "David", ClientAge: 28, ClientCountryName: "UK" },
    { ClientName: "Bob", ClientAge: 39, ClientCountryName: "AUS" }
], { ordered: true })
  • ordered: true (ডিফল্ট) — ক্রমাগত ইনসার্ট; একটা ফেইল করলে বাকি রুকায়।
  • ordered: false — আনঅর্ডার্ড; একটা ফেইল করলে বাকি চালিয়ে যায় (দ্রুত)।

রেজাল্ট অবজেক্ট

  • nInserted — সফলভাবে ইনসার্ট হওয়া ডকুমেন্ট সংখ্যা।
  • insertedIds — ইনসার্ট হওয়া ডকুমেন্টগুলোর _id গুলো।
  • writeErrors — কোনো এরর থাকলে তালিকা।

মূল পয়েন্টসমূহ

  • insertMany() বাল্ক ইনসার্টের জন্য স্ট্যান্ডার্ড মেথড।
  • insertOne() একক ডকুমেন্টের জন্য।
  • insert() ডিপ্রিকেটেড (deprecated) — নতুন কোডে ব্যবহার করবেন না।
  • বড় ব্যাচে (1000+ ডকুমেন্ট) ছোট ছোট ব্যাচে ভাগ করে ইনসার্ট করুন মেমরি ও টাইমআউট এড়াতে।
  • _id না দিলে MongoDB অটোমেটিক ObjectId জেনারেট করবে।
  1. উইন্ডোজ ১০-এ একাধিক টাইম জোনের জন্য একাধিক ঘড়ি যোগ করা

  2. MongoDB-এ বাল্ক ইন্সার্ট (initializeUnorderedBulkOp) করা

  3. MySQL-এ একাধিক রেকর্ড একসাথে ইনসার্ট করা (Batch/Multiple Insert) VALUES() কমা দিয়ে

  4. MySQL-এ একাধিক কলামের জন্য SELECT DISTINCT কীভাবে ব্যবহার করবেন?