masterID
또는 으로 그룹화해야하는 객체 모음이 있습니다 (masterID
이없는 경우). masterID
이 같은 객체 그룹 중 가장 높은 것()을 찾아야합니다. ($max: "$pos"
). 그러나, 나는 pos
이 최대화 된 완전한 객체를 얻기 위해 애를 쓴다. 집합체를 통해 pos
속성 만 얻을 수 있지만 전체 객체는 얻을 수 없다. 여기에 부족한 내가 사용하는 샘플 집계가있는 $ifNull
masterID
을 위해 : Sample 객체가 될
> db.tst.aggregate([{ "$group": { "_id": "$masterID", "pos": { "$max": "$pos" } } }])
:
> db.tst.find()
{ "_id" : ObjectId("547d6bd28e47d05a9a492e2e"), "masterID" : "master", "pos" : "453", "id" : "hallo" }
{ "_id" : ObjectId("547d6bda8e47d05a9a492e2f"), "masterID" : "master", "pos" : "147", "id" : "welt" }
{ "_id" : ObjectId("547d6be68e47d05a9a492e30"), "masterID" : "master2", "pos" : "1", "id" : "welt" }
원하는 집계 결과는 다음과 같습니다
{ "_id" : ObjectId("547d6bd28e47d05a9a492e2e"), "masterID" : "master", "pos" : "453", "id" : "hallo" }
{ "_id" : ObjectId("547d6be68e47d05a9a492e30"), "masterID" : "master2", "pos" : "1", "id" : "welt" }
방법이 있나요 집계를 통해이 결과를 얻거나 그룹화 된 모든 개체를 얻고에서 최대화를 구현하려면 $push
을 사용해야합니까?은 Java 코드에서 집계 주위에 있습니까?
이 질문에 mongodb aggregation: How to return a the object with min/max instead of the value는 $first
또는 $last
가 pos
으로 분류 개체에 사용하는 것을 나타낸다,하지만 난 그게 전체 개체를 반환하는 방법을 참조하지 못한다. 내가 바로 이해 한 경우
'$$ ROOT'을 이해하지 못합니다. '$$ ROOT'에는'$ sort' 이후에 전체 문서가 있습니까? 이런 식으로 당신은 목표물을 할 수 있습니까? – Barno
'$$ ROOT'는 현재 파이프 라인에서 처리중인 문서를 참조합니다. [http://docs.mongodb.org/manual/reference/aggregation-variables/#variable.ROOT](http://docs.mongodb.org/manual/reference/aggregation-variables/#variable.ROOT)를 참조하십시오. – wdberkeley