모듈: Mongoid::Contextual::Aggregable::Memory

포함 항목:
메모리
다음에 정의됨:
lib/mongoid/contextual/aggregable/memory.rb

개요

메모리의 값을 집계하기 위한 동작을 포함합니다.

인스턴스 메서드 요약 접기

인스턴스 메서드 세부 정보

#집계(필드) ⇒ 해시

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

제공된 필드 에 대한 모든 애그리게이션 값을 가져옵니다. Aggregable::Mongo와의 인터페이스 일관성 을 위해 제공됩니다.

매개변수:

  • 필드 (string | 기호)

    필드 이름입니다.

반환합니다:

  • (해시)

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



19
20
21
22
23
# 파일 'lib/mongoid/contextual/aggregable/memory.rb', 줄 19

def 집계(필드)
  %w(카운트 합계 평균 min 최대).each_with_object({}) do |메서드, 해시|
    해시[메서드] = send(메서드, 필드)
  end
end

#avg(필드) ⇒ 숫자

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

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

예시:

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

aggregable.avg(:likes)

매개변수:

  • 필드 (기호)

    평균을 구할 필드 입니다.

반환합니다:

  • (숫자)

    평균입니다.



35
36
37
38
39
40
41
# 파일 'lib/mongoid/contextual/aggregable/memory.rb', 줄 35

def 평균(필드)
  합계 = 카운트 { |doc| !doc.send(필드).nil? }
  반환 nil 하지 않는 한 합계 > 0

  합계 = 합계.to_f 만약 합계.is_a?(Integer)
  합계(필드) / 합계
end

#max(field = nil) ⇒ 숫자 | 문서

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

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

예시:

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

aggregable.max(:likes)

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

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

매개변수:

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

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

반환합니다:

  • (숫자 | 문서)

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



61
62
63
64
65
# 파일 'lib/mongoid/contextual/aggregable/memory.rb', 줄 61

def 최대(필드 = nil)
  반환 super() 만약 block_given?

  aggregate_by(필드, :max)
end

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

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

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

예시:

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

aggregable.min(:likes)

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

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

매개변수:

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

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

반환합니다:

  • (숫자 | 문서)

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



85
86
87
88
89
# 파일 'lib/mongoid/contextual/aggregable/memory.rb', 줄 85

def min(필드 = nil)
  반환 super() 만약 block_given?

  aggregate_by(필드, :min)
end

#합계(필드 = nil) ⇒ 숫자

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

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

예시:

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

aggregable.sum(:likes)

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

aggregable.sum(&:likes)

매개변수:

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

    합계할 필드입니다.

반환합니다:

  • (숫자)

    합계 값입니다.



105
106
107
108
109
# 파일 'lib/mongoid/contextual/aggregable/memory.rb', 줄 105

def 합계(필드 = nil)
  반환 super() 만약 block_given?

  aggregate_by(필드, :sum) || 0
end