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

MongoDB অগ্রেশন মেথডে ইন্টিজার অ্যারে কনক্যাটেনেট করা

MongoDB অগ্রেশন পাইপলাইনে ইন্টিজার অ্যারেকে স্ট্রিংয়ে কনক্যাটেনেট করা

MongoDB-এ ইন্টিজার অ্যারেকে স্ট্রিং হিসেবে একসাথে জোড়া (concatenate) করার জন্য অগ্রেশন পাইপলাইনে $reduce, $concat, $toLower (নাম্বারকে স্ট্রিং করতে), $substrCP ব্যবহার করা হয়।

উদাহরণ: আইডি লিস্ট সহ ডকুমেন্ট তৈরি

> db.demo377.insertOne({"ListOfIds":[1001,1002,1003,1004,1005,1006,1007]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5a73462ae06a1609a00b0e") }

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

> db.demo377.find().pretty();
{ "_id" : ObjectId("5e5a73462ae06a1609a00b0e"), "ListOfIds" : [ 1001, 1002, 1003, 1004, 1005, 1006, 1007 ] }

অগ্রেশন কুয়েরি: "++" সেপারেটর দিয়ে কনক্যাটেনেট

> db.demo377.aggregate([
    { "$project": {
        "ListOfIds": {
            "$let": {
                "vars": {
                    "key": {
                        "$reduce": {
                            "input": "$ListOfIds",
                            "initialValue": "",
                            "in": { "$concat": ["$$value", "++", { "$toLower": "$$this" }] }
                        }
                    }
                },
                "in": { "$substrCP": ["$$key", 2, { "$strLenCP": "$$key" }] }
            }
        }
    }}
])

ফলাফল

{ "_id" : ObjectId("5e5a73462ae06a1609a00b0e"), "ListOfIds" : "1001++1002++1003++1004++1005++1006++1007" }

পাইপলাইন ব্যাখ্যা

  1. $reduce: অ্যারে আইটারেট করে একক মান বানায়। initialValue: "" খালি স্ট্রিং।
  2. { "$concat": ["$$value", "++", { "$toLower": "$$this" }] }: প্রতিটি নাম্বারকে $toLower দিয়ে স্ট্রিং বানায় (MongoDB-এ নাম্বারকে স্ট্রিং করার ট্রিক), তারপর "++" দিয়ে কনক্যাটেনেট।
  3. $let: ভেরিয়েবল key এ পুরো স্ট্রিং স্টোর (শুরুতে "++1001++1002...")।
  4. $substrCP: প্রথম ২ ক্যারেক্টার ("++") কাটিয়ে ফেলা: [$$key, 2, { $strLenCP: "$$key" }]।

সরল বিকল্প (MongoDB 4.4+)

db.demo377.aggregate([
  { $project: { ListOfIds: { $reduce: { input: "$ListOfIds", initialValue: "", in: { $concat: ["$$value", { $cond: [{ $eq: ["$$value", ""]}, "", "++"] }, { $toString: "$$this" }] } } } } }
])

$toString (MongoDB 4.0+) সরাসরি নাম্বারকে স্ট্রিং করে, $toLower ট্রিক প্রয়োজন নেই।

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

  2. MongoDB-তে অবজেক্টের অ্যারে অনুসন্ধান করা

  3. MongoDB-এ অ্যারে থেকে এলিমেন্ট মুছে ফেলা ($pull অপারেটর)

  4. MongoDB অ্যাগ্রিগেশন: অ্যারে এলিমেন্টের সাবসেট যোগ করা ($first + $sum + $subtract)