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

집계 파이프라인을 사용하여 MongoDB에서 레코드 가져오기

<시간/>

MongoDB 집계 파이프라인에는 단계가 있습니다. 각 단계는 문서가 파이프라인을 통과할 때 문서를 변환합니다.

먼저 문서로 컬렉션을 만들어 보겠습니다. −

> db.demo218.insertOne({"이름":"크리스","분기":"CS",마크:[65,78,36,90]});{ "승인됨" :true, "insertedId " :ObjectId("5e3e5f4903d395bdc2134712")}> db.demo218.insertOne({"이름":"데이비드","지점":"ME",마크:[56,45,42,51]});{ "확인했습니다 " :true, "insertedId" :ObjectId("5e3e5f6203d395bdc2134713")}> db.demo218.insertOne({"이름":"크리스","분기":"CS", 마크:[78,65,89]});{ "승인됨" :true, "insertedId" :ObjectId("5e3e5f6c03d395bdc2134714")}

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

> db.demo218.find();

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

{ "_id":ObjectId("5e3e5f4903d395bdc2134712"), "이름":"크리스", "지점":"CS", "마크":[ 65, 78, 36, 90 ] }{ "_id":"ObjectId("5e3e5f6203d395bdc2134713"), "이름":"데이비드", "지점":"ME", "마크":[ 56, 45, 42, 51 ] }{ "_id":ObjectId("5e3e5f6c02d13" 이름":"크리스", "지점":"CS", "마크":[ 78, 65, 89 ] }

다음은 집계 파이프라인에 대한 쿼리입니다 -

> db.demo218.aggregate([... { "$unwind":"$Marks" },... { "$match":... {... "분기":"CS", ... "마크":{ "$gt":88 }... }... },... { "$group":... {... "_id":"$_id",. .. "분기":{ "$first":"$Branch" },... "마크":{ "$first":"$Marks" }... }... }...]) 

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

{ "_id":ObjectId("5e3e5f6c03d395bdc2134714"), "분기":"CS", "마크":89 }{ "_id":ObjectId("5e3e5f4903d395bdc2134712"), 마크" :90 }