먼저 문서로 컬렉션을 생성해 보겠습니다. −
> 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" } ] } ] }