[MONGODB] MongoDB를이 - 콜렉션에서 그룹 당 최대 속성을 가진 문서를 얻을 수
MONGODBMongoDB를이 - 콜렉션에서 그룹 당 최대 속성을 가진 문서를 얻을 수
내 데이터는 다음과 같습니다 :
session, age, firstName, lastName
1, 28, John, Doe
1, 21, Donna, Keren
2, 32, Jenna, Haze
2, 52, Tommy, Lee
..
..
나는 세션 당 (나이) 가장 큰 모든 행을 좀하고 싶습니다. 그래서 그래서 위의 입력 내 출력과 같을 것이다 :
sessionid, age, firstName, lastName
1, 28, John, Doe
2, 52, Tommy, Lee
요한은 세션 = 1 개 그룹에서 가장 큰 연령을 가지고 있으며, 토미는 세션 = 2 그룹에서 가장 큰 연령을 가지고 있기 때문에.
나는 파일 (CSV)로 결과를 내 보내야하며 기록을 많이 포함되어있을 수 있습니다.
이걸 어떻게 달성 할 수 있습니까?
해결법
-
==============================
1.http://docs.mongodb.org/manual/reference/operator/aggregation/max/ : 당신은 최대 속성을 사용하여 집계 쿼리 아래를 시도 할 수
http://docs.mongodb.org/manual/reference/operator/aggregation/max/ : 당신은 최대 속성을 사용하여 집계 쿼리 아래를 시도 할 수
db.collection.aggregate([ $group: { "_id": "$session", "age": { $max: "$age" } }, { $out : "max_age" } ])
결과는 새로운 수집 MAX_AGE로 출력해야하고 당신은 CSV로 덤프 할 수있다.
참고 : 그것은 단지 세션 및 최대 연령을 줄 것이다 및 기타 분야를 반환하지 않습니다.
-
==============================
2.그대로 MongoDB를 통합 제공,하지만 귀하의 경우에는 "전체"레코드를 $ 최대 연산자를 원한다. 여기에서 할 수있는 적절한 것은 $ 일종이며, 그래서 다음 $ 그룹 문 내에서 $ 최초의 연산자를 사용합니다 :
그대로 MongoDB를 통합 제공,하지만 귀하의 경우에는 "전체"레코드를 $ 최대 연산자를 원한다. 여기에서 할 수있는 적절한 것은 $ 일종이며, 그래서 다음 $ 그룹 문 내에서 $ 최초의 연산자를 사용합니다 :
db.collection.aggregate([ { "$sort": { "session": 1, "age": -1 } }, { "$group": { "_id": "$session", "age": { "$first": "$age" }, "firstName": { "$first" "$firstName" }, "lastName": { "$first": "$lastName" } }} ])
은 "정렬"주문 권리를 취득하고는 "그룹화"해당 필드가 존재하는 "그룹화"키 내에서 첫 번째 항목을 선택합니다 그래서.
먼저 여기 대부분 $ $ 일종의 역순으로 수행되기 때문이다. 또한 경우 오름차순으로뿐만 아니라 $ 마지막을 사용할 수 있습니다.
from https://stackoverflow.com/questions/25892928/mongodb-get-documents-with-max-attribute-per-group-in-a-collection by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 통합 테스트를 실행할 때 MongoDB를 임베디드 (0) | 2019.12.03 |
---|---|
[MONGODB] MongoError 다음 '커서'옵션은 설명 인수로 집계을 제외하고, 필요 (0) | 2019.12.03 |
[MONGODB] 빠른지도에 비해 MongoDB를 집계 프레임 워크인가 / 감소? (0) | 2019.12.03 |
[MONGODB] MongoDB를 : 어떻게 배열 내의 인덱스에 의해 참조 배열에서 하나의 하위 요소를 업데이트하려면 어떻게해야합니까? (0) | 2019.12.03 |
[MONGODB] 에 '또는'조건 MongoDB의 쿼리 (0) | 2019.12.03 |