클래스: Mongo::BulkWrite

상속:
객체
  • 객체
모두 표시
확장자:
전달 가능
다음을 포함합니다.
Operation::ResponseHandling
다음에 정의됨:
build/ruby-driver-v2.19/lib/mongo/bulk_write.rb,
build/ruby-driver-v2.19/lib/mongo/bulk_write/result.rb,
build/ruby-driver-v2.19/lib/mongo/bulk_write/combineable.rb,
build/ruby-driver-v2.19/lib/mongo/bulk_write/validatable.rb,
빌드/루비 드라이버-v2.19/lib/mongo/bulk_write/transformable.rb,
빌드/루비 드라이버-v2.19/lib/mongo/bulk_write/result_combiner.rb,
빌드/루비 드라이버-v2.19/lib/mongo/bulk_write/ordered_combiner.rb,
빌드/루비 드라이버-v2.19/lib/mongo/bulk_write/unordered_combiner.rb

네임스페이스 아래에 정의됨

모듈: 결합 가능, 변환 가능,유효성 검사 가능 클래스: OrderedCombiner, Result, ResultCombiner, UnorderedCombiner

인스턴스 속성 요약 접기

인스턴스 메서드 요약 접기

생성자 세부 정보

#initialize(collection, requests, options = {}) ⇒ BulkWrite

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

새 대량 쓰기 (write) 작업을 만듭니다.

예시:

순서가 지정된 대량 쓰기 (write) 를 만듭니다.

Mongo::BulkWrite.new(collection, [{ insert_one: { _id: 1 }}])

순서가 지정되지 않은 대량 쓰기를 생성합니다.

Mongo::BulkWrite.new(collection, [{ insert_one: { _id: 1 }}], ordered: false)

순서가 지정된 혼합 대량 쓰기 (write) 를 생성합니다.

Mongo::BulkWrite.new(
  collection,
  [
    { insert_one: { _id: 1 }},
    { update_one: { filter: { _id: 0 }, update: { '$set' => { name: 'test' }}}},
    { delete_one: { filter: { _id: 2 }}}
  ]
)

매개변수:

  • 컬렉션 (Mongo::Collection)

    컬렉션.

  • 요청 (Enumerable<Hash, BSON::Document>)

    요청은 비워 둘 수 없습니다.

  • 옵션 (Hash, BSON::Document) (기본값: {})

    옵션.

이후:

  • 2.1.0



123
124
125
126
127
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/bulk_write.rb', 줄 123

def 초기화(컬렉션, 요청, 옵션 = {})
  @collection = 컬렉션
  @requests = 요청
  @options = 옵션 || {}
end

인스턴스 속성 세부 정보

#컬렉션Mongo::Collection (읽기 전용)

반환값 컬렉션 컬렉션.

반환합니다:



32
33
34
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/bulk_write.rb', 줄 32

def 컬렉션
  @collection
end

#options해시, BSON::Document (읽기 전용)

반환값 options options.

반환합니다:

  • (Hash, BSON::Document)

    options 옵션입니다.



38
39
40
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/bulk_write.rb', 줄 38

def 옵션
  @options
end

#requestsArray<Hash, BSON::Document> (읽기 전용)

요청을 반환합니다.

반환합니다:

  • (Array<Hash, BSON::Document>)

    requests 요청입니다.



35
36
37
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/bulk_write.rb', 줄 35

def 요청
  @requests
end

인스턴스 메서드 세부 정보

#실행Mongo::BulkWrite::Result

대량 쓰기 (write) 작업을 실행합니다.

예시:

대량 쓰기 (write) 를 실행합니다.

bulk_write.execute

반환합니다:

이후:

  • 2.1.0



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/bulk_write.rb', 줄 58

def 실행
  operation_id = 모니터링.Next_operation_id
  result_combiner = ResultCombiner.신규
  연산 = op_combiner.결합
  validate_requests!

  고객.send(:with_session, @options) do |Session|
    컨텍스트 = 작업::Context.신규(클라이언트: 고객, 세션: Session)
    연산. do |작업|
      만약 single_statement?(작업)
        write_concern = write_concern(Session)
        write_with_retry(write_concern, 컨텍스트: 컨텍스트) do |연결, txn_num, 컨텍스트|
          execution_operation(
            작업..first,
            작업.values.flatten,
            연결,
            컨텍스트,
            operation_id,
            result_combiner,
            Session,
            txn_num)
        end
      other
        nro_write_with_retry(write_concern, 컨텍스트: 컨텍스트) do |연결, txn_num, 컨텍스트|
          execution_operation(
            작업..first,
            작업.values.flatten,
            연결,
            컨텍스트,
            operation_id,
            result_combiner,
            Session)
        end
      end
    end
  end
  result_combiner.결과
end

#주문했습니까?true, false

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

대량 쓰기 (write) 는 순서가 지정되나요?

예시:

대량 쓰기 (write) 는 순서가 지정되나요?

bulk_write.ordered?

반환합니다:

  • (true, false)

    대량 쓰기 (write) 가 주문된 경우.

이후:

  • 2.1.0



139
140
141
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/bulk_write.rb', 줄 139

def 주문?
  @ordered ||= 옵션.가져오기(:ordered, true)
end

#write_concern(session = nil) ⇒ WriteConcern

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

대량 쓰기 (write) 에 대한 쓰기 고려 (write concern) 를 가져옵니다.

예시:

쓰기 고려 (write concern) 를 가져옵니다.

bulk_write.write_concern

반환합니다:

이후:

  • 2.1.0



153
154
155
156
157
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/bulk_write.rb', 줄 153

def write_concern(Session = nil)
  @write_concern ||= 옵션[:write_concern] ?
    writeConcern.get(옵션[:write_concern]) :
    컬렉션.write_concern_with_session(Session)
end