>  Q&A  >  본문

mongodb - mongo 집계 쿼리 그룹화, 최대값 찾기

  1. 모두가 내 말의 의미를 이해할 수 있도록 사례를 먼저 제시하겠습니다.

으아악

위 링크는 일반적인 sqlgroup 쿼리인데, 지금 겪고 있는 문제는 mongo를 사용하여 그룹 쿼리를 수행하는 것입니다

집계 쿼리가 정말 짜증납니다. 시뮬레이션된 데이터는 다음과 같습니다.
(제 데이터를 용서해 주세요. 그는 아무런 제약 없이 자유롭습니다.)

으아악

요구사항은 이렇습니다
기기 유형에 따라 분류하고 각 카테고리의 최신 버전 번호를 알아보세요

내가 원하는 결과는 이렇다

으아악

아래 내용은 제가 직접 작성한 글인데 문제가 많습니다
제가 쓴 대로 했는데 원하는 결과가 나오지 않네요

으아악

1._id는 개체에 매핑될 수 없습니다
2.version은 그룹에 쓸 수 없습니다

이 구문을 정말 이해하지 못합니다
결과

으아악
phpcn_u1582phpcn_u15822736일 전982

모든 응답(1)나는 대답할 것이다

  • 某草草

    某草草2017-05-17 10:04:55

    _id는 물론 실제 _id와 매핑되지 않습니다. 여기서 _idgroup의 키를 나타냅니다.
    버전생성 사이의 관계가 무엇인지 모르겠습니다. 생성 상대적으로 큰 문서는 버전이어야 합니다. 비교적 새로운가요? 이 조건이 true인 경우 다음을 수행할 수 있습니다. _id当然映射不到真正的_id上,这里的_id指的是group的key。
    不清楚你的versioncreation是什么关系,creation比较大的文档version一定是比较新吗?如果这个条件成立的话,可以这样做:

    db.question.aggregate([
        {$sort: {creation: -1}},
        {$group : {_id :"$deviceType", version : {$first : "$version"}}},
        {$project: {deviceType: "$_id", version: "$version"}}
    ]);

    $firstgroup之后取第一个元素。而事先已经按creation 으아악

    $firstgroup 다음의 첫 번째 요소입니다. 미리 생성순으로 정렬해 두었기 때문에 가장 먼저 나온 것이 최신 요소입니다. 🎜

    회신하다
    0
  • 취소회신하다