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

MongoDB-এ অ্যারে প্রপার্টির শুধু প্রথম আইটেম কিভাবে বের করবেন?

MongoDB-এ অ্যারে ফিল্ড থেকে শুধু প্রথম এলিমেন্ট বের করতে প্রজেকশনে $slice অপারেটর ব্যবহার করুন।

উদাহরণ

অ্যারে অফ অবজেক্টস সহ ডকুমেন্ট তৈরি করুন:

> db.gettingFirstItemInArrayDemo.insertOne({
    "UserId": 101,
    "UserName": "Carol",
    "UserOtherDetails": [
        {"UserFriendName": "Sam"},
        {"UserFriendName": "Mike"},
        {"UserFriendName": "David"},
        {"UserFriendName": "Bob"}
    ]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5cdfca52bf3115999ed51205") }

ডকুমেন্টটি দেখুন:

> db.gettingFirstItemInArrayDemo.find().pretty();

আউটপুট:

{ "_id" : ObjectId("5cdfca52bf3115999ed51205"), "UserId" : 101, "UserName" : "Carol", "UserOtherDetails" : [ { "UserFriendName" : "Sam" }, { "UserFriendName" : "Mike" }, { "UserFriendName" : "David" }, { "UserFriendName" : "Bob" } ] }

শুধু প্রথম এলিমেন্ট বের করা ($slice: 1)

> db.gettingFirstItemInArrayDemo.find({ "UserId": 101 }, { UserOtherDetails: { $slice: 1 } });

আউটপুট:

{ "_id" : ObjectId("5cdfca52bf3115999ed51205"), "UserId" : 101, "UserName" : "Carol", "UserOtherDetails" : [ { "UserFriendName" : "Sam" } ] }

ব্যাখ্যা:

  • $slice: 1 — অ্যারের শুরু থেকে ১টি এলিমেন্ট রিটার্ন করে।
  • প্রজেকশন অবজেক্টে ফিল্ড নাম দিয়ে $slice সেট করা হয়।

বিকল্প (এগ্রিগেশন): $arrayElemAt: ["$UserOtherDetails", 0] — ০ ইনডেক্সের এলিমেন্ট বের করে।

db.gettingFirstItemInArrayDemo.aggregate([
    { $match: { UserId: 101 } },
    { $project: { UserId: 1, UserName: 1, FirstFriend: { $arrayElemAt: ["$UserOtherDetails.UserFriendName", 0] } } }
]);

ফলাফল: { "UserId": 101, "UserName": "Carol", "FirstFriend": "Sam" }

  1. MongoDB-এ update() ও upsert:true দিয়ে প্রথম ডকুমেন্টে নতুন ফিল্ড যোগ করা

  2. MongoDB-এ অ্যারে কনক্যাটেনেট (Concatenate) করা: $concatArrays ব্যবহার

  3. MongoDB-এ অ্যারে-র সাব-কলেকশন ক্যাপ্ড (Capped) করার পরিবর্তে $slice ব্যবহার

  4. MongoDB-এ অ্যারেতে ডুপ্লিকেট চেক করা