클래스: Mongo::Collection::View::MapReduce

상속:
객체
  • 객체
모두 표시
확장자:
전달 가능
다음을 포함합니다.
열거 가능, 불변, 기록 가능, 재시가능
다음에 정의됨:
build/ruby-driver-v2.19/lib/mongo/collection/view/map_reduce.rb

개요

컬렉션 뷰에서 맵/리듀스 작업과 관련된 동작을 제공합니다.

이후:

  • 2.0.0

상수 요약 접기

INLINE =

인라인 옵션입니다.

이후:

  • 2.1.0

'inline'.동결
REROOUT =
더 이상 사용되지 않습니다.

메시지 경로를 변경합니다.

이후:

  • 2.1.0

'MapReduce 작업을 프라이머리 서버 로 다시 라우팅합니다.'.동결

Loggable에서 포함된 상수

Loggable::prefix

인스턴스 속성 요약 접기

불변에 포함된 속성

#options

인스턴스 메서드 요약 접기

Retryable에 포함된 메서드

#read_Worker, #select_server, #write_Worker

Loggable에 포함된 메서드

#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger

생성자 세부 정보

#initialize(view, map, reduce, options = {}) ⇒ MapReduce

제공된 컬렉션 뷰, 함수 및 옵션에 대한 맵/리듀스를 초기화합니다.

예시:

새 맵/리듀스 뷰를 만듭니다.

매개변수:

  • 보기 (Collection::View)

    컬렉션 보기입니다.

  • map (string)

    지도 함수입니다.

  • reduce (string)

    축소 함수입니다.

  • 옵션 (해시) (기본값: {})

    맵/리듀스 옵션.

이후:

  • 2.0.0



113
114
115
116
117
118
119
120
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 컬렉션/view/map_reduce.rb', 줄 113

def 초기화(보기, map, reduce, 옵션 = {})
  @view = 보기
  @map_function = map.dup.동결
  @reduce_function = reduce.dup.동결
  @options = BSON::문서.신규(옵션).동결

  고객.log_warn('map_reduce 작업은 더 이상 사용되지 않습니다. 대신 집계 파이프라인을 사용하세요.')
end

인스턴스 속성 세부 정보

#map_functionstring (읽기 전용)

반환값 map 지도 함수입니다.

반환합니다:

  • (string)

    map 지도 함수입니다.

이후:

  • 2.0.0



48
49
50
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 컬렉션/view/map_reduce.rb', 줄 48

def map_function
  @map_function
end

#reduce_functionstring (읽기 전용)

reduce reduce 함수를 반환합니다.

반환합니다:

  • (string)

    reduce reduce 함수.

이후:

  • 2.0.0



51
52
53
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 컬렉션/view/map_reduce.rb', 줄 51

def reduce_function
  @reduce_function
end

#보기보기 (읽기 전용)

뷰를 반환합니다. 컬렉션 뷰를 반환합니다.

반환합니다:

  • (보기)

    view 컬렉션 보기.

이후:

  • 2.0.0



45
46
47
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 컬렉션/view/map_reduce.rb', 줄 45

def 보기
  @view
end

인스턴스 메서드 세부 정보

# {|Each| ... } ⇒ 열거자

맵/리듀스에서 반환된 문서를 반복합니다.

예시:

맵/리듀스 결과를 반복합니다.

map_reduce.each do |document|
  p document
end

수율 매개변수:

  • (해시)

    일치하는 문서.

반환합니다:

  • (열거자)

    열거자입니다.

이후:

  • 2.0.0



71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 컬렉션/view/map_reduce.rb', 줄 71

def 
  @cursor = nil
  Session = 고객.send(:get_session, @options)
  서버 = cluster.Next_primary(nil, Session)
  결과 = send_initial_query(서버, Session, 컨텍스트: 작업::Context.신규(클라이언트: 고객, 세션: Session))
  결과 = send_fetch_query(서버, Session) 하지 않는 한 인라인?
  @cursor = 커서.신규(보기, 결과, 서버, 세션: Session)
  만약 block_given?
    @cursor. do |doc|
      yield doc
    end
  other
    @cursor.to_enum
  end
end

#실행Mongo::Operation::Result

결과를 조회하기 조회 오기 쿼리 를 수행하지 않고 맵 리듀스를 실행합니다.

if outputted to a collection.

예시:

맵 리듀스를 실행하여 원시 결과를 얻습니다.

map_reduce.execute

반환합니다:

이후:

  • 2.5.0



223
224
225
226
227
228
229
230
231
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 컬렉션/view/map_reduce.rb', 줄 223

def 실행
  보기.send(:with_session, @options) do |Session|
    write_concern = 보기.write_concern_with_session(Session)
    컨텍스트 = 작업::Context.신규(클라이언트: 고객, 세션: Session)
    nro_write_with_retry(write_concern, 컨텍스트: 컨텍스트) do |연결, txn_num, 컨텍스트|
      send_initial_query_with_connection(연결, Session, 컨텍스트: 컨텍스트)
    end
  end
end

#finalize(function = nil) ⇒ MapReduce, string

작업에 대한 finalize 함수를 설정하거나 가져옵니다.

예시:

finalize 함수를 설정합니다.

map_reduce.finalize(function)

매개변수:

  • 함수 (string) (기본값: nil)

    JavaScript 함수를 마무리합니다.

반환합니다:

  • (MapReduce, string)

    새 MapReduce 작업 또는 함수 값입니다.

이후:

  • 2.0.0



98
99
100
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 컬렉션/view/map_reduce.rb', 줄 98

def 마무리(함수 = nil)
  구성(:finalize, 함수)
end

#js_mode(value = nil) ⇒ MapReduce, ...

작업에 대한 jsMode 플래그를 설정하거나 가져옵니다.

예시:

작업에 대한 JavaScript 모드 를 설정합니다.

map_reduce.js_mode(true)

매개변수:

  • value (true, false) (기본값: nil)

    jsMode 값입니다.

반환합니다:

  • (MapReduce, true, false)

    새 MapReduce 작업 또는 jsMode 플래그의 값입니다.

이후:

  • 2.0.0



133
134
135
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 컬렉션/view/map_reduce.rb', 줄 133

def js_mode(value = nil)
  구성(:js_mode, value)
end

#out(location = nil) ⇒ MapReduce, 해시

작업의 출력 위치를 설정하거나 가져옵니다.

예시:

출력을 인라인으로 설정합니다.

map_reduce.out(inline: 1)

병합할 출력 컬렉션을 설정합니다.

map_reduce.out(merge: 'users')

대체할 출력 컬렉션을 설정합니다.

map_reduce.out(replace: 'users')

출력 컬렉션 을 reduce로 설정합니다.

map_reduce.out(reduce: 'users')

매개변수:

  • 위치 (해시) (기본값: nil)

    출력 위치 세부 정보입니다.

반환합니다:

  • (MapReduce, Hash)

    새 MapReduce 작업 또는 출력 위치의 값입니다.

이후:

  • 2.0.0



157
158
159
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 컬렉션/view/map_reduce.rb', 줄 157

def out(위치 = nil)
  구성(:out, 위치)
end

#out_collection_nameObject

맵 리듀스 결과가 기록되는 컬렉션 이름을 반환합니다. 결과가 인라인으로 반환되면 nil을 반환합니다.

이후:

  • 2.0.0



163
164
165
166
167
168
169
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 컬렉션/view/map_reduce.rb', 줄 163

def out_collection_name
  만약 옵션[:out].response_to?(:keys)
    옵션[:out][OUT_ACTIONS.찾기 do |조치|
      옵션[:out][조치]
    end]
  end || 옵션[:out]
end

#out_database_name객체

맵 리듀스 결과가 기록되는 데이터베이스 이름을 반환합니다. 결과가 인라인으로 반환되면 nil을 반환합니다.

이후:

  • 2.0.0



173
174
175
176
177
178
179
180
181
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 컬렉션/view/map_reduce.rb', 줄 173

def out_database_name
  만약 옵션[:out]
    만약 옵션[:out].response_to?(:keys) && (db = 옵션[:out][:db])
      db
    other
      database.이름
    end
  end
end

#scope(object = nil) ⇒ MapReduce, 해시

작업에 대한 범위를 설정하거나 가져옵니다.

예시:

범위 값을 설정합니다.

map_reduce.scope(value: 'test')

매개변수:

  • 객체 (해시) (기본값: nil)

    범위 객체입니다.

반환합니다:

  • (MapReduce, Hash)

    새 MapReduce 작업 또는 범위 값입니다.

이후:

  • 2.0.0



194
195
196
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 컬렉션/view/map_reduce.rb', 줄 194

def 범위(객체 = nil)
  구성(:scope, 객체)
end

#verbose(value = nil) ⇒ MapReduce, Hash

결과에 타이밍 정보를 포함할지 여부입니다.

예시:

verbose 값을 설정합니다.

map_reduce.verbose(false)

매개변수:

  • value (true, false) (기본값: nil)

    결과에 타이밍 정보를 포함할지 여부입니다.

반환합니다:

  • (MapReduce, Hash)

    새로운 MapReduce 작업 또는 verbose 옵션의 값입니다.

이후:

  • 2.0.5



210
211
212
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 컬렉션/view/map_reduce.rb', 줄 210

def verbose(value = nil)
  구성(:verbose, value)
end