클래스: Mongo::Protocol::Query

상속:
메시지 모두 표시
다음을 포함합니다.
Monitoring::Event::Secure
다음에 정의됨:
빌드/ Ruby-driver-v2.19/lib/mongo/ 프로토콜/ 쿼리.rb

개요

MongoDB Wire 프로토콜 쿼리 메시지입니다.

제공된 쿼리와 일치하는 문서를 검색하기 위해 서버로 전송되는 클라이언트 요청 메시지입니다.

사용자는 프로젝션, 필드 하위 집합 선택, 건너뛸 수 또는 반환된 문서 수 제한과 같은 추가 옵션을 제공할 수도 있습니다.

커서 매개변수 또는 원하는 일관성 및 무결성 결과를 조정하는 데 사용할 수 있는 다양한 플래그가 있습니다.

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

클래스: 업컨버터

상수 요약

Monitoring::Event::Secure에 포함된 상수

Monitoring::Event::Secure::REDACTED_COMMANDS

메시지에서 상속된 상수

Message::BATCH_SIZE, Message::COLLECTION, Message::LIMIT, Message::MAX_MESSAGE_SIZE, Message::ORDERED, Message::Q

인스턴스 속성 요약

메시지에서 상속된 속성

#request_id

인스턴스 메서드 요약 접기

Monitoring::Event::Secure에 포함된 메서드

#compression_allowed?, #redacted, #sensitivity?

메시지에서 상속된 메서드

#==, 역직렬화, #hash, #maybe_add_server_api, #maybe_decrypt, #maybe_encrypt, #maybe_inflate, #number_returned, #set_request_id

ID에 포함된 메서드

포함

생성자 세부 정보

#initialize(데이터베이스, 컬렉션, 선택기, options = {}) ⇒ 쿼리

새 쿼리 메시지를 만듭니다.

예시:

이름이 Tyler인 모든 사용자를 찾습니다.

Query.new('xgen', 'users', {:name => 'Tyler'})

이름이 타일러인 모든 사용자를 건너뛰고 5 을(를)10 반환합니다.

Query.new('xgen', 'users', {:name => 'Tyler'}, :skip => 5,
                                               :limit => 10)

secondaryOk 비트가 설정된 모든 사용자 찾기

Query.new('xgen', 'users', {:name => 'Tyler'}, :flags => [:secondary_ok])

모든 사용자 ID를 찾습니다.

Query.new('xgen', 'users', {}, :fields => {:id => 1})

매개변수:

  • database (string, 기호)

    쿼리 할 데이터베이스 입니다.

  • 컬렉션 (string, 기호)

    쿼리 collection입니다.

  • 선택기 (해시)

    쿼리 선택기.

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

    추가 쿼리 옵션.

옵션 해시(options):

  • :플래그 (Array<기호>)

    플래그 비트입니다. 현재 지원되는 값은 :await_data, :exhaust, :no_cursor_timeout, :oplog_replay, :partial, :secondary_ok, :tailable_cursor입니다.

  • :limit (정수)

    반환할 문서 수입니다.

  • : 프로젝트 (해시)

    프로젝션.

  • :skip (정수)

    건너뛸 문서 수입니다.



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 프로토콜/ 쿼리.rb', 줄 64

def 초기화(database, 컬렉션, 선택기, 옵션 = {})
  @database = database
  @namespace = "#{database}.#{collection}"
  만약 선택기.nil?
    올리다 ArgumentError, '선택기는 nil일 수 없습니다.'
  end
  @selector = 선택기
  @options = 옵션
  프로젝트 = 옵션[: 프로젝트]
  @limit = 결정_제한
  @skip = 옵션[:skip]  || 0
  @flags = 옵션[:플래그] || []
  @upconverter = 업컨버터.신규(
    컬렉션,
    BSON::문서.신규(선택기),
    BSON::문서.신규(옵션),
    flags,
  )
  super
end

인스턴스 메서드 세부 정보

#may_compress(압축기, zlib_compression_level = nil) ⇒ 메시지

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

전송 중인 명령이 압축을 허용하는 경우 메시지를 압축합니다. 그렇지 않으면 자체를 반환합니다.

매개변수:

  • 압축기 (string, 기호)

    사용할 압축기입니다.

  • zlib_compression_level (정수) (기본값: nil)

    사용할 zlib 압축 수준입니다.

반환합니다:

  • (메시지)

    이 메시지의 압축 가능 여부에 따라 Protocol::Compressed 메시지 또는 자체 메시지를 반환합니다.

이후:

  • 2.5.0



125
126
127
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 프로토콜/ 쿼리.rb', 줄 125

def may_compress(압축기, zlib_compression_level = nil)
  compress_if_posible(선택기..first, 압축기, zlib_compression_level)
end

#payloadBSON::Document

모니터링 할 이벤트 페이로드를 반환합니다.

예시:

이벤트 페이로드를 반환합니다.

message.payload

반환합니다:

  • (BSON::Document)

    이벤트 페이로드입니다.

이후:

  • 2.1.0



93
94
95
96
97
98
99
100
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 프로토콜/ 쿼리.rb', 줄 93

def Payload
  BSON::문서.신규(
    command_name: 업컨버터.command_name,
    database_name: @database,
    명령: 업컨버터.명령,
    request_id: request_id
  )
end

#회신 가능?true

쿼리 메시지에는 데이터베이스 의 응답이 필요합니다.

예시:

메시지에 회신이 필요합니까?

message.replyable?

반환합니다:

  • (true)

    쿼리의 경우 항상 true입니다.

이후:

  • 2.0.0



110
111
112
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 프로토콜/ 쿼리.rb', 줄 110

def 회신 가능?
  true
end

#직렬화(버퍼 = BSON::ByteBuffer.new, max_bson_size = nil, bson_overhead = nil) ⇒ BSON::ByteBuffer

메시지를 유선으로 전송할 수 있는 바이트로 직렬화합니다.

매개변수:

  • buffer (BSON::ByteBuffer) (기본값: BSON::ByteBuffer.new)

    메시지를 삽입해야 하는 위치입니다.

  • max_bson_size (정수) (기본값: nil)

    최대 BSON 객체 크기입니다.

반환합니다:

  • (BSON::ByteBuffer)

    직렬화된 메시지가 포함된 버퍼입니다.



135
136
137
138
139
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 프로토콜/ 쿼리.rb', 줄 135

def 직렬화(buffer = BSON::ByteBuffer.신규, max_bson_size = nil, bson_overhead = nil)
  validate_document_size!(max_bson_size)

  super
end