Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

กำลังสอบถามขนาดอาร์เรย์ภายในใน MongoDB หรือไม่


คุณสามารถใช้ตัวดำเนินการ $size สำหรับขนาดอาร์เรย์ภายในใน MongoDB ไวยากรณ์มีดังนี้:

db.internalArraySizeDemo.aggregate(
   [
      {
         $group: {
            _id:yourObjectIdValue,
            anyFieldName: {$first: {$size: "$yourArrayName" }}
         }
      }
   ]
);

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างคอลเลกชันพร้อมเอกสารบางส่วน แบบสอบถามเพื่อสร้างคอลเลกชันที่มีเอกสารมีดังนี้:

>db.internalArraySizeDemo.insertOne({"EmployeeName":"Mike","EmployeeTechnology":["Jav
a 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")
}

แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้เมธอด find() แบบสอบถามมีดังนี้:

> 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"
   ]
}

นี่คือแบบสอบถามเพื่อรับขนาดอาร์เรย์ภายในโดยใช้ตัวดำเนินการ $size:

> db.internalArraySizeDemo.aggregate(
...    [
...       {
...          $group: {
...             _id:ObjectId("5c6eff586fd07954a48906b2"),
...             EmployeeTechnology_count: {$first: {$size: "$EmployeeTechnology" }}
...          }
...       }
...    ]
... );

ต่อไปนี้เป็นผลลัพธ์:

{ "_id" : ObjectId("5c6eff586fd07954a48906b2"), "EmployeeTechnology_count" : 2 }