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

Cách tốt nhất để tính tổng các trường kích thước mảng trong MongoDB?

Để tính tổng các trường kích thước mảng, hãy sử dụng $ sum cùng với $ size. Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

> db.demo231.insertOne({"Subjects":["MongoDB","MySQL","SQL Server"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3fc73ff4cebbeaebec5143")
}
> db.demo231.insertOne({"Subjects":["Java","C","C++"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3fc757f4cebbeaebec5144")
}
> db.demo231.insertOne({"Subjects":["Python","Spring"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3fc762f4cebbeaebec5145")
}

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.demo231.find();

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

{ "_id" : ObjectId("5e3fc73ff4cebbeaebec5143"), "Subjects" : [ "MongoDB", "MySQL", "SQL Server" ] }
{ "_id" : ObjectId("5e3fc757f4cebbeaebec5144"), "Subjects" : [ "Java", "C", "C++" ] }
{ "_id" : ObjectId("5e3fc762f4cebbeaebec5145"), "Subjects" : [ "Python", "Spring" ] }

Sau đây là truy vấn tính tổng các trường kích thước mảng trong MongoDB -

> db.demo231.aggregate([{'$group': {'_id': '_id', 'ToTalValue': {'$sum': {'$size': '$Subjects'}}}}])

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

{ "_id" : "_id", "ToTalValue" : 8 }