MongoDB 집계 파이프 라인에 여러 연산자를 사용하는 방법은 무엇입니까?

Diegoaguilar

이 스키마에 문서가있는 컬렉션이 있습니다 (그래도 스키마없는 세상이라는 것을 알고 있습니다 ).

{
  name: "Real Colicos",
  fee: 123,
  creator: {},
  participants: [{},{}]
}

따라서 참가자 수별로 정렬 된 첫 번째 그룹을 가져올 수 있는 쿼리가 필요합니다 . 물론 참가자 수 속성을 가질 수 있고 사용하여 업데이트시 증가시킬 수 $inc있지만 순진한 접근 방식이라고 생각합니다. 이 집계 또는 맵이 영역을 줄입니까?

편집하다. 해결책은 다음을 사용하는 것입니다 aggregate.

에서 문서 나는이 걸릴 수 :

  db.groups.aggregate(
    [
      {
        $project: {
          name: 1,
          participantsCount: {$size: "$participants"}
        }
      }
    ])

이것은 작동합니다 . 이제 검색 페이지를 매기고 참가자 수를 기준으로 정렬하고 일부 문서 속성 만 포함 할 수 있는지 궁금합니다.

난 노력 했어:

  db.groups.aggregate(
    [
      {

        $project: {
          name: 1,
          participantsCount: {$size: "$participants"}
        },
        $skip: 10,
        $limit: 5,
        $sort: {participantsCount: -1},
        $match: {isPrivate: false}

      }
    ],
    function (err, results) {
      console.log(results);
    }
  );

그러나 undefined결과적으로 던졌습니다 .

또한:

  db.groups.aggregate(
    [
      {

        $project: {
          name: 1,
          participantsCount: {$size: "$participants"}
        },
        {$skip: 10},
        {$limit: 5},
        {$sort: {participantsCount: -1}},
        {$match: {isPrivate: false}}

      }
    ],
    function (err, results) {
      console.log(results);
    }
  );

빈 배열을 던지고 있습니다.

그리고 심지어 :

db.groups.aggregate(
    [
      {$project: {name: 1, isPrivate: 1, participantsCount: {$size: "$participants"}}},
      {$match: {isPrivate: false}},
      {$skip: 10},
      {$limit: 5},
      {$sort: {participantsCount: -1}}
    ],
    function (err, results) {
      console.log(results);
    }
  );

또한 빈 배열을 던집니다.

Diegoaguilar

답변 : 집계는 파이프 라인이 될 수 있습니다.

문서에서 :

집계 파이프 라인은 데이터 처리 파이프 라인의 개념을 기반으로 모델링 된 데이터 집계를위한 프레임 워크입니다. 문서는 문서를 집계 된 결과로 변환하는 다단계 파이프 라인에 들어갑니다.

집계 작업에 컬렉션의 데이터 하위 집합 만 필요한 경우 $ match, $ limit 및 $ skip 단계를 사용하여 파이프 라인 시작 부분에 입력되는 문서를 제한합니다.

따라서 원하는 결과를 얻기 위해 파이프 라인이 처리됩니다. 두 번째 단락에서 알 수 있듯이 파이프 라인 처리 순서가 중요 합니다.

다음과 같이 표시되어야합니다.

collection.aggregate(
    [
      {$match: {isPrivate: false}},
      {$skip: 0},
      {$limit: 2},
      {$project: {name: 1, participantsCount: {$size: "$participants"}}},
      {$sort: {participantsCount: -1}}
    ]
  );

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

집계 파이프 라인 mongodb에서 $ update / $ set 연산자를 사용하는 방법은 무엇입니까?

분류에서Dev

mongodb 집계 파이프 라인에서 Javascript 객체를 사용하는 방법은 무엇입니까?

분류에서Dev

mongodb 집계 파이프 라인에서 $ group의 문서를 제한하는 방법은 무엇입니까?

분류에서Dev

mongodb에서 문서를 찾고 집계를 사용하여 속성을 찾는 방법은 무엇입니까?

분류에서Dev

집계 연산자를 사용하여 합계 * 수량을 계산하는 방법은 무엇입니까?

분류에서Dev

MongoDB 집계 파이프 라인에서 필터 기준을 충족하지 않는 결과를 제거하는 방법은 무엇입니까?

분류에서Dev

MongoDB의 집계 파이프 라인에서 개체를 다시 그룹화 (또는 병합)하는 방법은 무엇입니까?

분류에서Dev

Mongodb에서 $ add 집계를 사용하는 방법은 무엇입니까?

분류에서Dev

두 MongoDB 집계 파이프 라인 쿼리의 결과를 결합하고 $ facet을 사용하지 않고 결합 된 결과에 대해 다른 집계 쿼리를 수행하는 방법은 무엇입니까?

분류에서Dev

MongoDB 집계 파이프 라인 중에 루트를 배열 필드로 바꾸는 방법은 무엇입니까?

분류에서Dev

여러 열에 "IN"연산자를 사용하는 방법은 무엇입니까?

분류에서Dev

MongoDB에서 find ()에서 $ out 연산자를 사용하여 데이터를 다른 컬렉션으로 복사하는 방법은 무엇입니까?

분류에서Dev

node.js를 사용하여 mongodb에서 그룹 이름으로 그룹화 된 집계 값을 얻는 방법은 무엇입니까?

분류에서Dev

이 postgresql 쿼리에서 여러 계산을 집계하는 방법은 무엇입니까?

분류에서Dev

파이썬의 목록에서 슬라이싱 연산자를 사용하여 for 루프에서 부작용을 피하는 방법은 무엇입니까?

분류에서Dev

pymongo를 사용하여 Mongodb에서 여러 값을 업데이트하는 방법은 무엇입니까?

분류에서Dev

strongloop 루프백에서 mongoDB의 힌트 연산자를 사용하는 방법은 무엇입니까?

분류에서Dev

mongodb 및 C #을 사용하여 자식 요소에서 집계 함수를 사용하는 방법은 무엇입니까?

분류에서Dev

Google 드라이브 SDK를 사용하여 여러 계정을 추가하는 방법은 무엇입니까?

분류에서Dev

여러 줄 편집 상자에서 행 수를 계산하는 방법은 무엇입니까?

분류에서Dev

Impala를 사용하여 하이브 테이블의 열 하위 집합에 대해 계산 통계를 실행하는 방법은 무엇입니까?

분류에서Dev

awk 내에서 삼항 연산자를 사용하여 파일에 쓰는 방법은 무엇입니까?

분류에서Dev

여러 변수 (자체 제외)간에 가장 상관 관계가있는 변수를 계산하는 방법은 무엇입니까? 루프 나 맵 함수를 사용하여 코드를 단순화하는 방법은 무엇입니까?

분류에서Dev

SpringData MongoDB : Spring Aggregation을 사용하여 $ merge 집계를 설명하는 방법은 무엇입니까?

분류에서Dev

Jenkins http-request 플러그인 및 파이프 라인을 사용하여 본문에 JSON 데이터를 게시하는 방법은 무엇입니까?

분류에서Dev

mongodb로 한 번의 여행으로 여러 집계를 실행하는 방법은 무엇입니까?

분류에서Dev

Django에서 여러 사용자의 관련 개체를 계산하는 방법은 무엇입니까?

분류에서Dev

집계를 사용하여 MongoDB의 문서 루트에있는 배열의 객체를 출력하는 방법은 무엇입니까?

분류에서Dev

while 루프를 사용하여 파일에서 숫자의 합계를 찾는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    집계 파이프 라인 mongodb에서 $ update / $ set 연산자를 사용하는 방법은 무엇입니까?

  2. 2

    mongodb 집계 파이프 라인에서 Javascript 객체를 사용하는 방법은 무엇입니까?

  3. 3

    mongodb 집계 파이프 라인에서 $ group의 문서를 제한하는 방법은 무엇입니까?

  4. 4

    mongodb에서 문서를 찾고 집계를 사용하여 속성을 찾는 방법은 무엇입니까?

  5. 5

    집계 연산자를 사용하여 합계 * 수량을 계산하는 방법은 무엇입니까?

  6. 6

    MongoDB 집계 파이프 라인에서 필터 기준을 충족하지 않는 결과를 제거하는 방법은 무엇입니까?

  7. 7

    MongoDB의 집계 파이프 라인에서 개체를 다시 그룹화 (또는 병합)하는 방법은 무엇입니까?

  8. 8

    Mongodb에서 $ add 집계를 사용하는 방법은 무엇입니까?

  9. 9

    두 MongoDB 집계 파이프 라인 쿼리의 결과를 결합하고 $ facet을 사용하지 않고 결합 된 결과에 대해 다른 집계 쿼리를 수행하는 방법은 무엇입니까?

  10. 10

    MongoDB 집계 파이프 라인 중에 루트를 배열 필드로 바꾸는 방법은 무엇입니까?

  11. 11

    여러 열에 "IN"연산자를 사용하는 방법은 무엇입니까?

  12. 12

    MongoDB에서 find ()에서 $ out 연산자를 사용하여 데이터를 다른 컬렉션으로 복사하는 방법은 무엇입니까?

  13. 13

    node.js를 사용하여 mongodb에서 그룹 이름으로 그룹화 된 집계 값을 얻는 방법은 무엇입니까?

  14. 14

    이 postgresql 쿼리에서 여러 계산을 집계하는 방법은 무엇입니까?

  15. 15

    파이썬의 목록에서 슬라이싱 연산자를 사용하여 for 루프에서 부작용을 피하는 방법은 무엇입니까?

  16. 16

    pymongo를 사용하여 Mongodb에서 여러 값을 업데이트하는 방법은 무엇입니까?

  17. 17

    strongloop 루프백에서 mongoDB의 힌트 연산자를 사용하는 방법은 무엇입니까?

  18. 18

    mongodb 및 C #을 사용하여 자식 요소에서 집계 함수를 사용하는 방법은 무엇입니까?

  19. 19

    Google 드라이브 SDK를 사용하여 여러 계정을 추가하는 방법은 무엇입니까?

  20. 20

    여러 줄 편집 상자에서 행 수를 계산하는 방법은 무엇입니까?

  21. 21

    Impala를 사용하여 하이브 테이블의 열 하위 집합에 대해 계산 통계를 실행하는 방법은 무엇입니까?

  22. 22

    awk 내에서 삼항 연산자를 사용하여 파일에 쓰는 방법은 무엇입니까?

  23. 23

    여러 변수 (자체 제외)간에 가장 상관 관계가있는 변수를 계산하는 방법은 무엇입니까? 루프 나 맵 함수를 사용하여 코드를 단순화하는 방법은 무엇입니까?

  24. 24

    SpringData MongoDB : Spring Aggregation을 사용하여 $ merge 집계를 설명하는 방법은 무엇입니까?

  25. 25

    Jenkins http-request 플러그인 및 파이프 라인을 사용하여 본문에 JSON 데이터를 게시하는 방법은 무엇입니까?

  26. 26

    mongodb로 한 번의 여행으로 여러 집계를 실행하는 방법은 무엇입니까?

  27. 27

    Django에서 여러 사용자의 관련 개체를 계산하는 방법은 무엇입니까?

  28. 28

    집계를 사용하여 MongoDB의 문서 루트에있는 배열의 객체를 출력하는 방법은 무엇입니까?

  29. 29

    while 루프를 사용하여 파일에서 숫자의 합계를 찾는 방법은 무엇입니까?

뜨겁다태그

보관