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

Lấy giá trị trung bình của toàn bộ trường bằng cách sử dụng khung tổng hợp trong MongoDB?

Bạn có thể sử dụng phương thức tổng hợp () cho việc này. Trước tiên, hãy để chúng tôi tạo một bộ sưu tập với các tài liệu

> db.averageAggregationDemo.insertOne({"PlayerGameScore":45});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9ed66bd628fa4220163b95")
}
> db.averageAggregationDemo.insertOne({"PlayerGameScore":55});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9ed671d628fa4220163b96")
}
> db.averageAggregationDemo.insertOne({"PlayerGameScore":65});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9ed676d628fa4220163b97")
}
> db.averageAggregationDemo.insertOne({"PlayerGameScore":35});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9ed67bd628fa4220163b98")
}
> db.averageAggregationDemo.insertOne({"PlayerGameScore":16});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9ed701d628fa4220163b99")
}

Sau đây là truy vấn để 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.averageAggregationDemo.find().pretty();

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

{ "_id" : ObjectId("5c9ed66bd628fa4220163b95"), "PlayerGameScore" : 45 }
{ "_id" : ObjectId("5c9ed671d628fa4220163b96"), "PlayerGameScore" : 55 }
{ "_id" : ObjectId("5c9ed676d628fa4220163b97"), "PlayerGameScore" : 65 }
{ "_id" : ObjectId("5c9ed67bd628fa4220163b98"), "PlayerGameScore" : 35 }
{ "_id" : ObjectId("5c9ed701d628fa4220163b99"), "PlayerGameScore" : 16 }
Following is the query to get the average of an entire field with aggregation:
> db.averageAggregationDemo.aggregate({ "$group": { "_id": null, "PlayerGameScoreAverage": { "$avg": "$PlayerGameScore" } } } );

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

{ "_id" : null, "PlayerGameScoreAverage" : 43.2 }