나는 경쟁 결과를 담고있는 컬렉션이 있습니다.MongoDB 쿼리 정렬 고유
{"person" : "Adam", "time" : 10.01, "compName" : "comp A"}
{"person" : "Bob", "time" : 10.12, "compName" : "comp B"}
{"person" : "Adam", "time" : 9.03, "compName" : "comp C"}
{"person" : "Adam", "time" : 10.99, "compName" : "comp D"}
{"person" : "David", "time" : 10.05, "compName" : "comp D"}
{"person" : "Bob", "time" : 10.78, "compName" : "comp E"}
나는이 컬렉션에서 순위를 얻으려고합니다.
나는 db.results.find({}).sort({"time" : 1})
을 시도했지만 동일한 이름의 결과가 중복됩니다. 각 이름에 가장 적합한 시간을 얻으려면 어떻게해야합니까?
조회에서 다음
db.results.aggregate(
{$group: {_id: '$person', besttime: {$min: "$time"}}}
{$sort: {besttime: 1}}
);
에 관한 유성과 같이 될 것입니다 당신이 달성하기 위해 MongoDB를 aggregation $min을 사용할 수 있습니다
최소 시간은 'compName'을 유지하는 방법이 있습니까? –
@OrangePeel이'$ group' 해시에 추가되었습니다. 예를 들어 대답을 편집했습니다. –
@chridam 오, 물론, 'compName'에 관계없이 대답에 단 하나의 이름 만 필요한 경우 맞습니다. 지금 querstion을 통해 읽고, 그게 정확히 무엇을 원한다고 생각 ... 내 대답을 편집, 덕분에 –