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

중복 ID를 기반으로 MongoDB에서 평점 평균을 얻는 방법은 무엇입니까?


MongoDB의 평균은 $avg를 사용합니다. 문서로 컬렉션을 만들어 봅시다. 여기에 각 −

에 대한 등급이 있는 중복 ID가 있습니다.
> db.demo606.insertOne({id:1,rating:5});{ "확인됨" :true, "insertedId" :ObjectId("5e972dfbf57d0dc0b182d623")}> db.demo606.insertOne({id:,rating:4});{ "승인됨" :true, "insertedId" :ObjectId("5e972dfef57d0dc0b182d624")}> db.demo606.insertOne({id:2,rating:3});{ "승인됨" :true, "insertedId":ObjectId("5e972e09f57d0dc0b182d625")}> db.demo606.insertOne({id:1,rating:null});{ "승인된":true, "insertedId":ObjectId("5e97200dcef1872e0) demo606.insertOne({id:2,rating:null});{ "승인됨":true, "insertedId":ObjectId("5e972e15f57d0dc0b182d627")}> db.demo606.insertOne({id:2,rating:3};{ "승인됨" :true, "insertedId" :ObjectId("5e972e1bf57d0dc0b182d628")}

find() 메서드를 사용하여 컬렉션의 모든 문서 표시 -

> db.demo606.find();

이것은 다음과 같은 출력을 생성합니다 -

{ "_id" :ObjectId("5e972dfbf57d0dc0b182d623"), "id" :1, "rating" :5 }{ "_id" :ObjectId("5e972dfef57d0dc0b182d624"), "id" :1 }{ "_id":ObjectId("5e972e09f57d0dc0b182d625"), "id":2, "rating":3 }{ "_id":ObjectId("5e972e0ef57d0dc0b182d626"), "id":1, "_id":ObjectId("5e972e15f57d0dc0b182d627"), "id":2, "rating":null }{ "_id":ObjectId("5e972e1bf57d0dc0b182d628"), "id":2, "rating"> 

다음은 중복 ID를 기반으로 등급 평균을 구하는 쿼리입니다 -

> db.demo606.aggregate(... [... { "$group":{... "_id":"$id",... "AverageRating":{ "$avg":{ "$ifNull":["$rating",0 ] } }... }}... ]... );

이것은 다음과 같은 출력을 생성합니다 -

{ "_id" :2, "AverageRating" :2 }{ "_id" :1, "AverageRating" :3 }