MongoDB-এ একটি ডকুমেন্টের ভেতরের অ্যারের আকার (সাইজ) জানতে অ্যাগ্রিগেশন ফ্রেমওয়ার্কের $size অপারেটর $group স্টেজের সাথে ব্যবহার করা হয়। এটি নির্দিষ্ট ডকুমেন্টের অ্যারে লেংথ রিটার্ন করে।
সিনট্যাক্স
db.internalArraySizeDemo.aggregate([
{
$group: {
_id: yourObjectIdValue,
anyFieldName: { $first: { $size: "$yourArrayName" } }
}
}
]);
নমুনা কালেকশন তৈরি
> db.internalArraySizeDemo.insertOne({
"EmployeeName": "Mike",
"EmployeeTechnology": ["Java Web Development", "Python Web Development"]
});
{ "acknowledged": true, "insertedId": ObjectId("5c6eff586fd07954a48906b2") }
> db.internalArraySizeDemo.insertOne({
"EmployeeName": "Sam",
"EmployeeTechnology": ["C with Graphics", "Game Development with C++ Language", "MatLab"]
});
{ "acknowledged": true, "insertedId": ObjectId("5c6effcd6fd07954a48906b3") }
সমস্ত ডকুমেন্ট প্রদর্শন
> db.internalArraySizeDemo.find().pretty();
আউটপুট:
{
"_id": ObjectId("5c6eff586fd07954a48906b2"),
"EmployeeName": "Mike",
"EmployeeTechnology": [ "Java Web Development", "Python Web Development" ]
}
{
"_id": ObjectId("5c6effcd6fd07954a48906b3"),
"EmployeeName": "Sam",
"EmployeeTechnology": [ "C with Graphics", "Game Development with C++ Language", "MatLab" ]
}
ইন্টারনাল অ্যারে সাইজ জানার কোয়েরি
নির্দিষ্ট _id वाले ডকুমেন্টের EmployeeTechnology অ্যারের সাইজ জানা:
> db.internalArraySizeDemo.aggregate([
{
$group: {
_id: ObjectId("5c6eff586fd07954a48906b2"),
EmployeeTechnology_count: { $first: { $size: "$EmployeeTechnology" } }
}
}
]);
ফলাফল
{ "_id": ObjectId("5c6eff586fd07954a48906b2"), "EmployeeTechnology_count": 2 }
ব্যাখ্যা: $size অপারেটর অ্যারের এলিমেন্ট সংখ্যা রিটার্ন করে। $first অ্যাকুমুলেটর গ্রুপের প্রথম ডকুমেন্টের ভ্যালু নেয় (এখানে শুধু একই ডকুমেন্ট থাকায়)। এটি শুধু নির্দিষ্ট ডকুমেন্টের জন্য কাজ করে। সব ডকুমেন্টের অ্যারে সাইজ জানতে $project স্টেজ ব্যবহার করুন:
বিকল্প: সব ডকুমেন্টের অ্যারে সাইজ
db.internalArraySizeDemo.aggregate([
{ $project: { EmployeeName: 1, TechCount: { $size: "$EmployeeTechnology" } } }
]);
এটি প্রতিটি ডকুমেন্টের অ্যারে সাইজ দেখাবে।