Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

MongoDB의 집계 프레임워크를 사용하여 전체 필드의 평균을 구하시겠습니까?

<시간/>

이를 위해 집계() 메서드를 사용할 수 있습니다. 먼저 문서로 컬렉션을 생성하겠습니다.

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

다음은 find() 메서드를 사용하여 컬렉션의 모든 문서를 표시하는 쿼리입니다.

> db.averageAggregationDemo.find().pretty();

그러면 다음과 같은 출력이 생성됩니다.

{ "_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" } } } );

그러면 다음과 같은 출력이 생성됩니다.

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