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

MongoDB-এ অ্যারে উপাদানের ক্রম বদলানো (Swap পদ্ধতি)

MongoDB-এ অ্যারে উপাদানের ক্রম বদলানো: JavaScript Swap লজিক

MongoDB-এ সরাসরি অ্যারে উপাদান সোয়াপ করার বিল্ট-ইন অপারেটর নেই। তাই find().forEach() লুপে JavaScript-এ সোয়াপ করে $set দিয়ে আপডেট করতে হয়।

উদাহরণ: ডেটা ইনসার্ট

> db.demo301.insertOne({"Name":["Chris","David","Bob"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e4d6ff55d93261e4bc9ea51") }

প্রদর্শন

> db.demo301.find();

আউটপুট:

{ "_id" : ObjectId("5e4d6ff55d93261e4bc9ea51"), "Name" : [ "Chris", "David", "Bob" ] }

প্রথম দুটি উপাদান সোয়াপ করার কোয়ারি

> db.demo301.find({}, { Name : 1 }).forEach(function(n) {
...     var t = n.Name[0];
...     n.Name[0] = n.Name[1];
...     n.Name[1] = t;
...     db.demo301.update({ _id: n._id }, { $set: { Name: n.Name } });
...})

আপডেট পর পরিদর্শন

> db.demo301.find();

আউটপুট:

{ "_id" : ObjectId("5e4d6ff55d93261e4bc9ea51"), "Name" : [ "David", "Chris", "Bob" ] }

ব্যাখ্যা

  • find({}, {Name:1}) — শুধু Name ফিল্ড আনে (পারফরম্যান্স)۔
  • forEach — প্রতিটি ডকুমেন্টের জন্য ফাংশন চালায়।
  • JavaScript-এ টেম্পেরারি ভেরিয়েবল t দিয়ে সোয়াপ।
  • update({_id:n._id}, {$set:{Name:n.Name}}) — আপডেট করা অ্যারে ডাটাবেসে লিখে।

সতর্কতা: বড় কালেকশনে এটি ধীর হতে পারে। বাল্ক রাইট (bulkWrite) বা অ্যাপ্লিকেশন লেভেলে প্রসেস করুন। MongoDB 5.2+ তে $set উইথ এggregেশন পাইপলাইন দিয়ে এক কোয়ারিয়ে করা সম্ভব।

  1. MongoDB-এ নেস্টেড অ্যারে অ্যাগ্রিগেট করার পদ্ধতি

  2. MongoDB-তে সাবডকুমেন্টের অ্যারে কুয়েরি

  3. MongoDB-তে অ্যারے के ভেতরের এলিমেন্ট আপডেট

  4. MongoDB-এ নেস্টেড অ্যারে সর্ট করা