클래스: Mongoid::Contextual::MapReduce

상속:
객체
  • 객체
모두 표시
확장자:
전달 가능
다음을 포함합니다.
열거형, 명령
다음에 정의됨:
lib/mongoid/contextual/map_reduce.rb

개요

mapReduce 데이터베이스 명령 지침을 나타냅니다.

인스턴스 속성 요약

명령에 포함된 속성

# 컬렉션, # 컬렉션 쿼리 할 컬렉션 입니다., #criteria, #criteria 컨텍스트에 대한 기준입니다.

인스턴스 메서드 요약 접기

Command에 포함된 메서드

#client

생성자 세부 정보

#initialize(컬렉션, criteria, map, reduce) ⇒ MapReduce

새 맵/리듀스 지시문을 초기화합니다.

예시:

새 맵/리듀스를 초기화합니다.

MapReduce.new(criteria, map, reduce)

매개변수:

  • 기준 (기준)

    Mongoid 기준입니다.

  • map (string)

    지도 JavaScript 함수입니다.

  • reduce (string)

    reduce JavaScript 함수.



77
78
79
80
81
# 파일 'lib/mongoid/contextual/map_reduce.rb', 줄 77

def 초기화(컬렉션, 기준, map, reduce)
  @collection = 컬렉션
  @criteria = 기준
  @map_reduce = @criteria.보기.map_reduce(map, reduce)
end

인스턴스 메서드 세부 정보

#명령해시

명령 사양의 선택기를 반환합니다.

반환합니다:

  • (해시)

    선택기.



221
222
223
# 파일 'lib/mongoid/contextual/map_reduce.rb', 줄 221

def 명령
  @map_reduce.send(:map_reduce_spec)[:selector]
end

#counts해시

맵/리듀스에서 반환된 모든 카운트를 가져옵니다.

예시:

카운트를 가져옵니다.

map_reduce.counts

반환합니다:

  • (해시)

    계산합니다.



22
23
24
# 파일 'lib/mongoid/contextual/map_reduce.rb', 줄 22

def 카운트
  결과["counts"]
end

#각각열거자

데이터베이스에서 다시 전달된 추가 정보를 제외하고 맵/리듀스의 각 문서를 반복합니다.

예시:

결과를 반복합니다.

map_reduce.each do |doc|
  p doc
end

반환합니다:

  • (열거자)

    열거자입니다.



35
36
37
38
39
40
41
42
43
44
# 파일 'lib/mongoid/contextual/map_reduce.rb', 줄 35

def 
  validate_out!
  만약 block_given?
    @map_reduce. do |doc|
      yield doc
    end
  other
    @map_reduce.to_enum
  end
end

#방출된정수

맵/리듀스에서 내보낸 문서 수를 가져옵니다.

예시:

방출된 문서 수를 가져옵니다.

map_reduce.emitted

반환합니다:

  • (정수)

    내보낸 문서 수입니다.



52
53
54
# 파일 'lib/mongoid/contextual/map_reduce.rb', 줄 52

def 방출
  카운트["방출"]
end

#finalize(function) ⇒ MapReduce

맵/리듀스에 대한 finalize JavaScript 함수를 제공합니다.

예시:

finalize 함수를 제공합니다.

map_reduce.finalize(func)

매개변수:

  • 함수 (string)

    finalize 함수.

반환합니다:



64
65
66
67
# 파일 'lib/mongoid/contextual/map_reduce.rb', 줄 64

def 마무리(함수)
  @map_reduce = @map_reduce.마무리(함수)
  self
end

#inputInteger

맵/리듀스에 입력된 문서 수를 가져옵니다.

예시:

입력 문서 수를 가져옵니다.

map_reduce.input

반환합니다:

  • (정수)

    입력 문서 수입니다.



89
90
91
# 파일 'lib/mongoid/contextual/map_reduce.rb', 줄 89

def 입력
  카운트["input"]
end

#검사string

기준, 맵, 리듀스, 파이널라이즈 및 출력 옵션을 포함하여 맵/리듀스의 예쁜 string 표현을 가져옵니다.

예시:

map_reduce를 검사합니다.

map_reduce.inspect

반환합니다:

  • (string)

    검사 string.



207
208
209
210
211
212
213
214
215
216
# 파일 'lib/mongoid/contextual/map_reduce.rb', 줄 207

def 검사
%Q{#<Mongoid::Contextual::MapReduce 선택기: #{criteria. 선택기.검사}
  클래스:    
  #{ 기준.      klass}
  map: #{command[:map]}
  reduce:#{command[:reduce]} finalize: #{command[:finalize]} 
  out:      #{command[:out].} >}
 검사
end

#js_modeMapReduce

jsMode를 사용하도록 맵/리듀스를 설정합니다.

예시:

맵/리듀스를 jsMode로 설정합니다.

map_reduce.js_mode

반환합니다:



99
100
101
102
# 파일 'lib/mongoid/contextual/map_reduce.rb', 줄 99

def js_mode
  @map_reduce = @map_reduce.js_mode(true)
  self
end

#out(위치) ⇒ MapReduce

맵/리듀스 출력을 저장할 위치를 지정합니다. 지원되는 맵 축소 옵션은 MongoDB 설명서를 참조하세요.

예시:

출력을 메모리에 저장합니다.

map_reduce.out(inline: 1)

출력을 컬렉션에 저장하여 기존 문서를 대체합니다.

map_reduce.out(replace: "collection_name")

출력을 컬렉션에 저장하여 기존 문서를 병합합니다.

map_reduce.out(merge: "collection_name")

출력을 컬렉션에 저장하여 기존 문서를 줄입니다.

map_reduce.out(reduce: "collection_name")

맵 리듀스에서 결과를 반환합니다.

map_reduce.out(inline: 1)

매개변수:

  • 위치 (해시)

    결과를 저장할 장소입니다.

반환합니다:

  • (MapReduce)

    맵/리듀스 객체입니다.



125
126
127
128
129
130
131
132
# 파일 'lib/mongoid/contextual/map_reduce.rb', 줄 125

def out(위치)
  정규화 = 위치.dup
  정규화.transform_values! do |value|
    value.is_a?(::기호) ? value.to_s : value
  end
  @map_reduce = @map_reduce.out(정규화)
  self
end

#outputInteger

맵/리듀스로 출력된 문서 수를 가져옵니다.

예시:

출력 문서 수를 가져옵니다.

map_reduce.output

반환합니다:

  • (정수)

    출력 문서 수입니다.



140
141
142
# 파일 'lib/mongoid/contextual/map_reduce.rb', 줄 140

def 출력
  카운트["출력"]
end

#raw해시 ~라고도 함: 결과, 실행

맵/리듀스 작업에서 원시 출력을 가져옵니다.

예시:

원시 출력을 가져옵니다.

map_reduce.raw

반환합니다:

  • (해시)

    원시 출력입니다.



150
151
152
153
154
155
# 파일 'lib/mongoid/contextual/map_reduce.rb', 줄 150

def 원시
  validate_out!
  cmd = 명령
  opts = { 읽기: 기준.옵션.가져오기(:read) } 만약 기준.옵션[:read]
  @map_reduce.database.명령(cmd, (opts || {}).merge(세션: _session)).first
end

#reduced정수

맵/리듀스로 감소된 문서 수를 가져옵니다.

예시:

문서 수를 줄이세요.

map_reduce.reduced

반환합니다:

  • (정수)

    축소된 문서 수입니다.



173
174
175
# 파일 'lib/mongoid/contextual/map_reduce.rb', 줄 173

def 감소
  카운트["reduce"]
end

#범위(객체) ⇒ 맵 리듀스

맵/리듀스의 전역 범위에 JavaScript 객체 를 추가합니다.

예시:

전역 범위에 객체 를 추가합니다.

map_reduce.scope(name: value)

매개변수:

  • 객체 (해시)

    전역 범위에 대한 키/값의 해시입니다.

반환합니다:



185
186
187
188
# 파일 'lib/mongoid/contextual/map_reduce.rb', 줄 185

def 범위(객체)
  @map_reduce = @map_reduce.범위(객체)
  self
end

#timeFloat

맵/리듀스의 실행 시간을 가져옵니다.

예시:

실행 시간을 가져옵니다.

map_reduce.time

반환합니다:

  • (Float)

    밀리초 단위의 시간입니다.



196
197
198
# 파일 'lib/mongoid/contextual/map_reduce.rb', 줄 196

def 시간
  결과["timeMillis"]
end