Computer >> Máy Tính >  >> Lập trình >> MongoDB

Truy vấn MongoDB để đếm số lượng mục mảng trong tài liệu và hiển thị trong một trường mới

Để đếm số mục mảng trong tài liệu, hãy sử dụng $ size trong MongoDB. Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

> db.demo703.insertOne({"ListOfSubject":["MySQL","MongoDB"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea6ebaf551299a9f98c93b4")
}
> db.demo703.insertOne({"ListOfSubject":["Java"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea6ebb5551299a9f98c93b5")
}
> db.demo703.insertOne({"ListOfSubject":["C","C++","Python"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea6ebbf551299a9f98c93b6")
}

Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find () -

> db.demo703.find();

Điều này sẽ tạo ra kết quả sau -

{ "_id" : ObjectId("5ea6ebaf551299a9f98c93b4"), "ListOfSubject" : [ "MySQL", "MongoDB" ] }
{ "_id" : ObjectId("5ea6ebb5551299a9f98c93b5"), "ListOfSubject" : [ "Java" ] }
{ "_id" : ObjectId("5ea6ebbf551299a9f98c93b6"), "ListOfSubject" : [ "C", "C++", "Python" ] }

Sau đây là truy vấn để đếm số lượng mục mảng -

>db.demo703.aggregate({$project:{NumberOfItemsInEachArray:{$size:"$ListOfSubject"}}}).pretty();

Điều này sẽ tạo ra kết quả sau -

{
   "_id" : ObjectId("5ea6ebaf551299a9f98c93b4"),
   "NumberOfItemsInEachArray" : 2
}
{
   "_id" : ObjectId("5ea6ebb5551299a9f98c93b5"),
   "NumberOfItemsInEachArray" : 1
}
{
   "_id" : ObjectId("5ea6ebbf551299a9f98c93b6"),
   "NumberOfItemsInEachArray" : 3
}