모듈: Mongoid::Contextual::Aggregable::Mongo

포함 항목:
mongo
다음에 정의됨:
lib/mongoid/contextual/aggregable/ Mongo.rb

개요

mongo 에서 값을 집계하기 위한 동작을 포함합니다.

인스턴스 메서드 요약 접기

인스턴스 메서드 세부 정보

#집계(필드) ⇒ 해시

더 이상 사용되지 않습니다.

제공된 필드 에 대한 모든 애그리게이션 값을 가져옵니다.

예시:

모든 애그리게이션 값을 가져옵니다.

aggregable.aggregates(:likes)
# => {
#   "count" => 2.0,
#   "max" => 1000.0,
#   "min" => 500.0,
#   "sum" => 1500.0,
#   "avg" => 750.0
# }

매개변수:

  • 필드 (string | 기호)

    필드 이름입니다.

반환합니다:

  • (해시)

    애그리게이션 값을 포함하는 해시입니다. 문서를 찾을 수 없는 경우 반환된 해시는 0 의 개수, 합계 및 nil의 최대, 최소, 평균을 갖습니다.



30
31
32
33
34
35
36
37
# 파일 'lib/mongoid/contextual/aggregable/ Mongo.rb', 줄 30

def 집계(필드)
  결과 = 컬렉션.집계(파이프라인(필드), 세션: _session).to_a
  만약 결과.비어 있나요?
    집계 가능::EMPTY_RESULT.dup
  other
    결과.first
  end
end

#avg(필드) ⇒ Float

더 이상 사용되지 않습니다.

제공된 필드 의 평균값을 가져옵니다.

예시:

단일 필드의 평균을 구합니다.

aggregable.avg(:likes)

매개변수:

  • 필드 (기호)

    평균을 구할 필드 입니다.

반환합니다:

  • (Float)

    평균입니다.



49
50
51
# 파일 'lib/mongoid/contextual/aggregable/ Mongo.rb', 줄 49

def 평균(필드)
  집계(필드)["avg"]
end

#최대(필드 = nil) ⇒ Float | 문서

더 이상 사용되지 않습니다.

제공된 필드 의 최대값을 가져옵니다. 차단 이 제공되면 Ruby의 열거 가능한 API 에 따라 필드 에 대한 가장 큰 값을 가진 문서를 반환합니다.

예시:

단일 필드 의 최대값을 가져옵니다.

aggregable.max(:likes)

최대값이 있는 문서 를 가져옵니다.

aggregable.max do |a, b|
  a.likes <=> b.likes
end

매개변수:

  • 필드 (기호) (기본값: nil)

    필드 를 최대로 설정합니다.

반환합니다:

  • (Float | Document)

    최대값 또는 최대값이 있는 문서입니다.



71
72
73
# 파일 'lib/mongoid/contextual/aggregable/ Mongo.rb', 줄 71

def 최대(필드 = nil)
  block_given? ? super() : 집계(필드)["max"]
end

#min(필드 = nil) ⇒ Float | 문서

더 이상 사용되지 않습니다.

제공된 필드의 최소값을 가져옵니다. 차단이 제공되면 Ruby의 열거 가능한 API에 따라 필드에서 가장 작은 값을 가진 문서를 반환합니다.

예시:

단일 필드의 최소값을 가져옵니다.

aggregable.min(:likes)

최소값이 있는 문서 를 가져옵니다.

aggregable.min do |a, b|
  a.likes <=> b.likes
end

매개변수:

  • 필드 (기호) (기본값: nil)

    필드를 최소값으로 설정합니다.

반환합니다:

  • (Float | Document)

    최소값 또는 최소값이 있는 문서 입니다.



93
94
95
# 파일 'lib/mongoid/contextual/aggregable/ Mongo.rb', 줄 93

def min(필드 = nil)
  block_given? ? super() : 집계(필드)["min"]
end

#합계(필드 = nil) ⇒ Float

더 이상 사용되지 않습니다.

제공된 필드 의 합계 값을 가져옵니다. 차단 이 제공되면 Ruby의 열거 가능한 API 에 따라 합계를 반환합니다.

예시:

단일 필드 의 합계를 가져옵니다.

aggregable.sum(:likes)

제공된 차단 의 합계를 가져옵니다.

aggregable.sum(&:likes)

매개변수:

  • 필드 (기호) (기본값: nil)

    합계할 필드입니다.

반환합니다:

  • (Float)

    합계 값입니다.



111
112
113
# 파일 'lib/mongoid/contextual/aggregable/ Mongo.rb', 줄 111

def 합계(필드 = nil)
  block_given? ? super() : 집계(필드)["합계"] || 0
end