클래스: Mongo::Index::View
- 상속:
-
객체
- 객체
- Mongo::Index::View
- 확장자:
- 전달 가능
- 다음을 포함합니다.
- 열거 가능, 재시도 가능
- 다음에 정의됨:
- 빌드/ Ruby-driver-v2.19/lib/mongo/ 인덱스/view.rb
개요
인덱스 뷰를 나타내는 클래스입니다.
상수 요약 접기
- KEY =
인덱스 키 필드 입니다.
'key'.동결
- NAME =
인덱스 이름 필드 입니다.
'name'.동결
- OPTIONS =
Ruby 인덱스 옵션과 서버 옵션의 매핑입니다.
{ : 배경 => : 배경, :bits => :bits, :bucket_size => :bucketSize, :default_language => :default_language, :expire_after => :expireAfterSeconds, :expire_after_seconds => :expireAfterSeconds, :key => :key, :language_override => :language_override, :max => :max, :min => :min, :name => :name, :partial_filter_expression => :partialFilterExpression, :sparse => :sparse, :sphere_version => :'2dsphereIndexVersion', :storage_engine => :storageEngine, :text_version => :textIndexVersion, :unique => :unique, :version => :v, :weights => :weights, :collation => :collation, :comment => :comment, :wildcard_projection => :wildcardProjection, }.동결
인스턴스 속성 요약 접기
-
#batch_size ⇒ 정수
읽기 전용
Batch_size listIndexes 명령을 보낼 때 결과 배치 의 크기입니다.
-
#컬렉션 ⇒ collection
읽기 전용
Collection 인덱스 컬렉션 입니다.
인스턴스 메서드 요약 접기
-
#create_many(*models) ⇒ 결과
컬렉션 에 여러 인덱스를 만듭니다.
-
#create_one(keys, options = {}) ⇒ Result
컬렉션 에 인덱스 를 만듭니다.
-
#drop_all(options = {}) ⇒ 결과
컬렉션 의 모든 인덱스를 삭제합니다.
-
#drop_one(name, options = {}) ⇒ Result
이름별로 인덱스 를 삭제합니다.
-
#각각(&block) ⇒ 객체
컬렉션 의 모든 인덱스를 반복합니다.
-
#get(keys_or_name) ⇒ 해시
특정 이름이나 사양으로 인덱스 정보를 가져오는 편리한 메서드입니다.
-
#initialize(컬렉션, options = {}) ⇒ 보기
생성자
새 인덱스 뷰를 만듭니다.
Retryable에 포함된 메서드
#read_Worker, #select_server, #write_Worker
생성자 세부 정보
#initialize(컬렉션, options = {}) ⇒ 보기
새 인덱스 뷰를 만듭니다.
293 294 295 296 297 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 인덱스/view.rb', 줄 293 def 초기화(컬렉션, = {}) @collection = 컬렉션 @batch_size = [:batch_size] @options = end |
인스턴스 속성 세부 정보
#batch_size ⇒ 정수 (읽기 전용)
반환값 batch_size listIndexes 명령을 보낼 때 결과 배치 의 크기입니다.
34 35 36 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 인덱스/view.rb', 줄 34 def batch_size @batch_size end |
#collection ⇒ collection (읽기 전용)
반환값 컬렉션 인덱스 컬렉션 입니다.
30 31 32 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 인덱스/view.rb', 줄 30 def 컬렉션 @collection end |
인스턴스 메서드 세부 정보
#create_many(*models) ⇒ 결과
참고:
MongoDB 3.0.0 이상에서는 인덱스가 서버 에서 병렬로 생성됩니다.
컬렉션 에 여러 인덱스를 만듭니다.
206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 인덱스/view.rb', 줄 206 def create_many(*모델) 모델 = 모델.flatten = {} 만약 모델 && !모델.last.키?(:key) = 모델.팝 end 고객.send(:with_session, @options.merge()) do |Session| 서버 = Next_primary(nil, Session) 인덱스 = normalize_models(모델, 서버) 인덱스.각 do |index| 만약 index[:bucketSize] || index['bucketSize'] 고객.log_warn("Haystack 인덱스(bucketSize 인덱스 옵션)는 MongoDB 4.4부터 더 이상 사용되지 않습니다.") end end 사양 = { 인덱스: 인덱스, db_name: database.이름, coll_name: 컬렉션.이름, 세션: Session, commit_quorum: [:commit_quorum], write_concern: write_concern, comment: [:comment], } 작업::인덱스 생성.신규(사양).실행(서버, 컨텍스트: 작업::Context.신규(클라이언트: 고객, 세션: Session)) end end |
#create_one(keys, options = {}) ⇒ Result
참고:
나열된 옵션은 사용 가능한 옵션의 하위 집합일 수 있습니다.
컬렉션 에 인덱스 를 만듭니다.
서버 버전별 지원되는 옵션의 전체 목록은 MongoDB 설명서를 참조하세요.
157 158 159 160 161 162 163 164 165 166 167 168 169 170 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 인덱스/view.rb', 줄 157 def create_one(키, = {}) = .dup = {} 만약 Session = @options[:session] [:session] = Session end %i(commit_quorum Session comment).각 do |키| 만약 value = .삭제(키) [키] = value end end create_many({ 키: 키 }.merge(), ) end |
#drop_all(options = {}) ⇒ 결과
컬렉션 의 모든 인덱스를 삭제합니다.
109 110 111 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 인덱스/view.rb', 줄 109 def drop_all( = {}) drop_by_name(Index::ALL, comment: [:comment]) end |
#drop_one(name, options = {}) ⇒ Result
이름별로 인덱스 를 삭제합니다.
91 92 93 94 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 인덱스/view.rb', 줄 91 def drop_one(이름, = {}) 올리다 오류::MultiIndexDrop.신규 만약 이름 == Index::ALL drop_by_name(이름, comment: [:comment]) end |
#각각(&block) ⇒ 객체
컬렉션 의 모든 인덱스를 반복합니다.
265 266 267 268 269 270 271 272 273 274 275 276 277 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 인덱스/view.rb', 줄 265 def 각(&차단) Session = 고객.send(:get_session, @options) cursor = read_with_retry_cursor(Session, ServerSelector.기본, self) do |서버| send_initial_query(서버, Session) end 만약 block_given? cursor.각 do |doc| yield doc end other cursor.to_enum end end |