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

MongoDB 집계에서 $match 및 $project 구현


$match는 문서를 필터링하여 지정된 조건과 일치하는 문서만 다음 파이프라인 단계로 전달합니다.

$project는 요청된 필드가 있는 문서를 파이프라인의 다음 단계로 전달합니다.

예제를 보고 문서로 컬렉션을 생성해 보겠습니다. −

> db.demo545.insert({Name:"Chris",details:{SubjectScore1:56,SubjectScore2:56}})
WriteResult({ "nInserted" : 1 })
> db.demo545.insert({Name:"David",details:{SubjectScore1:78,SubjectScore2:78}})
WriteResult({ "nInserted" : 1 })

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

> db.demo545.find();

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

{ "_id" : ObjectId("5e8e246e9e5f92834d7f05d5"), "Name" : "Chris", "details" : { "SubjectScore1" : 56, "SubjectScore2" : 56 } }
{ "_id" : ObjectId("5e8e24709e5f92834d7f05d6"), "Name" : "David", "details" : { "SubjectScore1" : 78, "SubjectScore2" : 78 } }

다음은 $match 및 $project −

를 구현하는 쿼리입니다.
>db.demo545.aggregate([{$match:{}},{$project:{"_id":0,"details.SubjectScore1":1,out:"$details
.SubjectScore2"}},{$group:{_id:"$out"}}])

이렇게 하면 다음 출력이 생성됩니다 -

{ "_id" : 78 }
{ "_id" : 56 }