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

MongoDB-এ Math.random() ব্যবহার করে ইউনিক ইমেইল আইডি জেনারেট করা

MongoDB শেলে JavaScript-এর Math.random() ফাংশন ব্যবহার করে র‍্যান্ডম ইউনিক ডেটা (যেমন ইমেইল আইডি) জেনারেট করে ডকুমেন্ট আপডেট করা যায়। এটি টেস্ট ডেটা তৈরির জন্য উপযোগী।

উদাহরণ: কালেকশন ও ডেটা তৈরি (EmailId: null)

> db.demo561.insertOne({EmailId: null});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8f490454b4472ed3e8e86c") }
> db.demo561.insertOne({EmailId: null});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8f490654b4472ed3e8e86d") }
> db.demo561.insertOne({EmailId: null});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8f490a54b4472ed3e8e86e") }

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

> db.demo561.find();

আউটপুট:

{ "_id" : ObjectId("5e8f490454b4472ed3e8e86c"), "EmailId" : null }
{ "_id" : ObjectId("5e8f490654b4472ed3e8e86d"), "EmailId" : null }
{ "_id" : ObjectId("5e8f490a54b4472ed3e8e86e"), "EmailId" : null }

র‍্যান্ডম ইমেইল জেনারেট করে আপডেট করা

> db.demo561.find().forEach(function(doc) {
    db.demo561.update(
      { _id: doc._id },
      { $set: {
          EmailId: 'John' + Math.random() * 100000000000000000 + '@' + Math.random() * 100000000000000000 + '.com'
      } }
  });

কোড ব্যাখ্যা

  • db.demo561.find().forEach(...) — প্রতিটি ডকুমেন্টে লুপ চালায়।
  • Math.random() * 100000000000000000 — ০ থেকে ১০17-এর মধ্যে র‍্যান্ডম সংখ্যা জেনারেট করে।
  • স্ট্রিং কনкатেনেশন: 'John' + random + '@' + random + '.com'।
  • update({_id: doc._id}, {$set: {...}}) — প্রতিটি ডকুমেন্ট আপডেট করে।

আউটপুট (উদাহরণ)

{ "_id" : ObjectId("5e8f490454b4472ed3e8e86c"), "EmailId" : "John23607829153155868@62688631475897960.com" }
{ "_id" : ObjectId("5e8f490654b4472ed3e8e86d"), "EmailId" : "John63351292234094710@79460595429439740.com" }
{ "_id" : ObjectId("5e8f490a54b4472ed3e8e86e"), "EmailId" : "John71315584787457890@99884571221675000.com" }

সতর্কতা ও উন্নতি

  • Math.random() ইউনিক নয়: ডুপ্লিকেট হতে পারে (যদিও বড় রেঞ্জে সম্ভাবনা কম)। প্রোডাকশনে UUID বা ObjectId ব্যবহার করুন।
  • বাল্ক আপডেট: লুপের বদলে bulkWrite() ব্যবহার করুন পারফরম্যান্সের জন্য।
  • টাইপস্ট্রিপ্ট/নোড.জেএস: অ্যাপ্লিকেশন কোডে Faker.js বা অন্য লাইব্রেরি ব্যবহার করুন।
  • Math.random() ক্রিপ্টোগ্রাফিক্যালি সিকিউর নয়।

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

  • MongoDB শেলে JavaScript ফাংশন (Math.random, Date.now, ইত্যাদি) ব্যবহার করা যায়।
  • forEach + update প্যাটার্ন ব্যাকফিল (backfill) বা ডেটা মাইগ্রেশনের জন্য কাজে লাগে।
  • ইউনিক কনস্ট্রেইন্ট থাকলে ডুপ্লিকেট এরর হ্যান্ডল করুন।
  1. MongoDB-এ "@email" স্ট্রিং সার্চ করা ফিল্ড ভ্যালুতে

  2. MySQL কলামে সর্বনিম্ন এবং সর্বোচ্চ মানের সারি ডেটা বের করা

  3. MongoDB এবং MySQL একসাথে ব্যবহার: একটি আধুনিক ডেটা কৌশল

  4. MongoDB কীভাবে Adobe Experience Manager কে উন্নত করে: একটি প্রায়োগিক গাইড