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

상속:
객체
  • 객체
모두 표시
확장자:
전달 가능
다음을 포함합니다.
열거 가능, 불변, 기록 가능, 재시가능
다음에 정의됨:
lib/ Mongo/ 컬렉션/view/map_reduce.rb

개요

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

이후:

  • 2.0.0

상수 요약 접기

INLINE =

인라인 옵션입니다.

이후:

  • 2.1.0

'인라인'
REROOUT =
더 이상 사용되지 않습니다.

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

이후:

  • 2.1.0

'MapReduce 작업을 프라이머리 서버 로 다시 라우팅'

Loggable에서 포함된 상수

Loggable::prefix

인스턴스 속성 요약 접기

불변에 포함된 속성

#options

인스턴스 메서드 요약 접기

Retryable에 포함된 메서드

#read_Worker, #select_server, #with_overload_retry, #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



118
119
120
121
122
123
124
125
126
# 파일 'lib/ Mongo/ 컬렉션/view/map_reduce.rb', 줄 118

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

  지원 중단.경고(:map_reduce,
                    map_reduce 작업은 더 이상 사용되지 않습니다. 대신 집계 파이프라인 사용하세요. ')
end

인스턴스 속성 세부 정보

#map_functionstring (읽기 전용)

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

반환합니다:

  • (string)

    map 지도 함수입니다.

이후:

  • 2.0.0



46
47
48
# 파일 'lib/ Mongo/ 컬렉션/view/map_reduce.rb', 줄 46

def map_function
  @map_function
end

#reduce_functionstring (읽기 전용)

reduce reduce 함수를 반환합니다.

반환합니다:

  • (string)

    reduce reduce 함수.

이후:

  • 2.0.0



49
50
51
# 파일 'lib/ Mongo/ 컬렉션/view/map_reduce.rb', 줄 49

def reduce_function
  @reduce_function
end

#보기보기 (읽기 전용)

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

반환합니다:

  • (보기)

    view 컬렉션 보기.

이후:

  • 2.0.0



43
44
45
# 파일 'lib/ Mongo/ 컬렉션/view/map_reduce.rb', 줄 43

def 보기
  @view
end

인스턴스 메서드 세부 정보

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

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

예시:

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

map_reduce.each do |document|
  p document
end

수율 매개변수:

  • (해시)

    일치하는 문서.

반환합니다:

  • (열거자)

    열거자입니다.

이후:

  • 2.0.0



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# 파일 'lib/ Mongo/ 컬렉션/view/map_reduce.rb', 줄 69

def (&차단)
  @cursor = nil
  Session = 고객.get_session(@options)
  서버 = cluster.Next_primary(nil, Session)
  컨텍스트 = 작업::Context.신규(클라이언트: 고객, 세션: Session,
                                   operation_timeout: 보기.operation_timeout)
  만약 서버.load_balancer?
    # 커서 비워지면 연결이 체크인됩니다.
    연결 = 서버..check_out(컨텍스트: 컨텍스트)
    결과 = send_initial_query_with_connection(연결, 컨텍스트.Session, 컨텍스트: 컨텍스트)
    결과 = send_fetch_query_with_connection(연결, Session) 하지 않는 한 인라인?
  other
    결과 = send_initial_query(서버, 컨텍스트)
    결과 = send_fetch_query(서버, Session) 하지 않는 한 인라인?
  end
  @cursor = 커서.신규(보기, 결과, 서버, 세션: Session)
  만약 block_given?
    @cursor.(&차단)
  other
    @cursor.to_enum
  end
end

#실행Mongo::Operation::Result

컬렉션 에 출력된 경우 결과를 조회 하기 위해 가져오기 쿼리 를 수행하지 않고 맵 리듀스를 실행합니다.

예시:

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

map_reduce.execute

반환합니다:

이후:

  • 2.5.0



229
230
231
232
233
234
235
236
237
# 파일 'lib/ Mongo/ 컬렉션/view/map_reduce.rb', 줄 229

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



103
104
105
# 파일 'lib/ Mongo/ 컬렉션/view/map_reduce.rb', 줄 103

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



139
140
141
# 파일 'lib/ Mongo/ 컬렉션/view/map_reduce.rb', 줄 139

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



163
164
165
# 파일 'lib/ Mongo/ 컬렉션/view/map_reduce.rb', 줄 163

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

#out_collection_nameObject

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

이후:

  • 2.0.0



169
170
171
172
173
174
175
# 파일 'lib/ Mongo/ 컬렉션/view/map_reduce.rb', 줄 169

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

#out_database_name객체

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

이후:

  • 2.0.0



179
180
181
182
183
184
185
186
187
# 파일 'lib/ Mongo/ 컬렉션/view/map_reduce.rb', 줄 179

def out_database_name
  반환 하지 않는 한 옵션[:out]

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

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

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

예시:

범위 값을 설정합니다.

map_reduce.scope(value: 'test')

매개변수:

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

    범위 객체입니다.

반환합니다:

  • (MapReduce, Hash)

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

이후:

  • 2.0.0



200
201
202
# 파일 'lib/ Mongo/ 컬렉션/view/map_reduce.rb', 줄 200

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



216
217
218
# 파일 'lib/ Mongo/ 컬렉션/view/map_reduce.rb', 줄 216

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