모두가 내 말의 의미를 이해할 수 있도록 사례를 먼저 제시하겠습니다.
위 링크는 일반적인 sqlgroup 쿼리인데, 지금 겪고 있는 문제는 mongo를 사용하여 그룹 쿼리를 수행하는 것입니다
집계 쿼리가 정말 짜증납니다. 시뮬레이션된 데이터는 다음과 같습니다.
(제 데이터를 용서해 주세요. 그는 아무런 제약 없이 자유롭습니다.)
요구사항은 이렇습니다
기기 유형에 따라 분류하고 각 카테고리의 최신 버전 번호를 알아보세요
내가 원하는 결과는 이렇다
으아악아래 내용은 제가 직접 작성한 글인데 문제가 많습니다
제가 쓴 대로 했는데 원하는 결과가 나오지 않네요
1._id는 개체에 매핑될 수 없습니다
2.version은 그룹에 쓸 수 없습니다
이 구문을 정말 이해하지 못합니다
결과
某草草2017-05-17 10:04:55
_id
는 물론 실제 _id
와 매핑되지 않습니다. 여기서 _id
는 group
의 키를 나타냅니다. 버전
과 생성
사이의 관계가 무엇인지 모르겠습니다. 생성
상대적으로 큰 문서는 버전이어야 합니다.
비교적 새로운가요? 이 조건이 true인 경우 다음을 수행할 수 있습니다. _id
当然映射不到真正的_id
上,这里的_id
指的是group
的key。
不清楚你的version
和creation
是什么关系,creation
比较大的文档version
一定是比较新吗?如果这个条件成立的话,可以这样做:
db.question.aggregate([
{$sort: {creation: -1}},
{$group : {_id :"$deviceType", version : {$first : "$version"}}},
{$project: {deviceType: "$_id", version: "$version"}}
]);
$first
即group
之后取第一个元素。而事先已经按creation
으아악
$first
는 group
다음의 첫 번째 요소입니다. 미리 생성
순으로 정렬해 두었기 때문에 가장 먼저 나온 것이 최신 요소입니다. 🎜