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

집계 함수를 구현하는 MongoDB 쿼리

<시간/>

먼저 문서로 컬렉션을 생성해 보겠습니다. −

> db.demo121.insertOne(... {... "Id" :101,... "Details" :[... {... "SubjectId" :"1",... " SubjectName" :"MongoDB",... "Score" :76... },... {... "SubjectId" :"2",... "SubjectName" :"MySQL",... " Score" :76... },... {... "SubjectId" :"3",... "SubjectName" :"Java",... "Score" :76... }... ]... }... );{ "승인됨" :true, "insertedId" :ObjectId("5e2f1c60140daf4c2a3544b3")}

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

> db.demo121.find();

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

{ "_id" :ObjectId("5e2f1c60140daf4c2a3544b3"), "Id" :101, "Details" :[ { "SubjectId" :"1", "SubjectName" :"MongoDB", "Score" :76 }, { "SubjectId" :"2", "SubjectName" :"MySQL", "Score" :76 }, { "SubjectId" :"3", "SubjectName" :"Java", "Score" :76 } ]} 

다음은 집계 함수를 구현하는 쿼리입니다 -

> db.demo121.aggregate([... { "$match":{ "Id":101 } },... { "$unwind":"$Details" },... {.. . "$group":{... "_id":"$Details.SubjectId",... "count":{ "$sum":1 },... "Details":{... "$ push":{... "SubjectName":"$Details.SubjectName"... }... }... }... },... {... "$group":{... "_id":null,... "목록":{... "$push":{... "SubId":"$_id",... "세부 정보":"$Details"... } ... }... }... }... ], 함수(오류, 출력) {... res.json(out);... });

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

{ "_id" :null, "목록" :[ { "SubId" :"3", "Details" :[ { "SubjectName" :"Java" } ] }, { "SubId" :"2", "세부 정보" :[ { "SubjectName" :"MySQL" } ] }, { "SubId" :"1", "세부 정보" :[ { "SubjectName" :"MongoDB" } ] } ] }