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

문서 전체에 걸쳐 배열에 있는 객체의 개별 속성을 합산하는 MongoDB 집계

<시간/>

이를 위해 MongoDB에서 집계()를 사용합니다. 먼저 문서로 컬렉션을 만들어 보겠습니다. −

> db.demo131.insertOne(... {... "_id":101,... "자세히":[... {... "PlayerScore":500,... "PlayerName" :"크리스"... },... {... "PlayerScore":400,... "PlayerName":"데이비드"... }... ]... }... );{ "승인" :true, "insertedId" :101 }> db.demo131.insertOne(... {... "_id":102,... "세부 정보":[... {... "PlayerScore" :600,... "PlayerName":"Chris"... },... {... "PlayerScore":200,... "PlayerName":"David"... }... ]. .. }... );{ "승인됨" :true, "insertedId" :102 }

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

> db.demo131.find();

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

{ "_id" :101, "Details" :[ { "PlayerScore" :500, "PlayerName" :"Chris" }, { "PlayerScore" :400, "PlayerName" :"David" } ] }{ " _id" :102, "세부 정보" :[ { "PlayerScore" :600, "PlayerName" :"Chris" }, { "PlayerScore" :200, "PlayerName" :"David" } ] }

다음은 배열의 개체에 대한 개별 속성을 합산하는 쿼리입니다. -

> db.demo131.aggregate([... { $unwind:"$Details" },... {... $group:{... _id:"$Details.PlayerName",... 값:{$sum:"$Details.PlayerScore"}... }... },... {... $group:{... _id:0,... 세부정보:{ $push:{ 세부 정보:"$_id",값:"$Value"}}... }... },... {... $project:{세부 정보:1,_id:0}... } ]) 

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

{ "세부 정보" :[ { "세부 정보" :"데이비드", "값" :600 }, { "세부 정보" :"크리스", "값" :1100 } ] }