모듈: Mongoid::Indexable::ClassMethods
- 다음에 정의됨:
- lib/mongoid/indexable.rb
인스턴스 메서드 요약 접기
-
#add_indexes ⇒ true
기본 인덱스가 아직 없는 경우 루트 문서 에 기본값 인덱스를 추가합니다.
-
#create_indexes ⇒ true
실제 인덱스 생성 주석을 MongoDB 드라이버에 보냅니다.
-
#index(spec, options = nil) ⇒ Hash
제공된 단일 또는 복합 키에 대한 인덱스 정의를 추가합니다.
-
#index_specation(index_hash, index_name = nil) ⇒ 사양
제공된 키에 대한 인덱스 사양을 가져옵니다.
-
#remove_indexes ⇒ true
실제 인덱스 제거 코멘트를 MongoDB 운전자 에 전송하되, _id 는 그대로 유지합니다.
인스턴스 메서드 세부 정보
#add_indexes ⇒ true
기본값 인덱스가 아직 존재하지 않는 경우 루트 문서 에 추가합니다. 현재 이는 _type뿐입니다.
72 73 74 75 76 77 |
# 파일 'lib/mongoid/indexable.rb', 72줄 def add_indexes 만약 유전? && !index_keys.포함?(판별자_키.to_sym => 1) index({ 판별자_키.to_sym => 1 }, unique: 거짓, 배경: true) end true end |
#create_indexes ⇒ true
실제 인덱스 생성 주석을 MongoDB 드라이버에 보냅니다.
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# 파일 'lib/mongoid/indexable.rb', 24줄 def create_indexes 반환 하지 않는 한 index_specations = { 배경: Config.background_indexing } index_specations.각 do |사양| 키, = 사양.키, .merge(사양.) 만약 database = [:database] 와(database: database) do |class| class.컬렉션.인덱스(세션: _session).create_one(키, .~을 제외하고(:database)) end other 컬렉션.인덱스(세션: _session).create_one(키, ) end end 개인정보 정책에 true end |
#index(spec, options = nil) ⇒ Hash
제공된 단일 또는 복합 키에 대한 인덱스 정의를 추가합니다.
92 93 94 95 96 97 98 99 100 101 102 103 |
# 파일 'lib/mongoid/indexable.rb', 92줄 def index(사양, = nil) 사양 = 사양.신규(self, 사양, ) # Indexable::Specification 인스턴스에 대한 동등성 테스트는 # 모든 옵션을 고려하므로 이름이 비교되지 않습니다. 이는 다음을 의미합니다. # 인덱스 이 다른 인덱스와 # 이름, 중복 인덱스 선언이 없는 한 자동으로 무시됩니다. # 허용됩니다. 반환 하지 않는 한 몽고이드.allow_duplicate_index_declarations || !index_specations.포함?(사양) index_specations.push(사양) end |
#index_specation(index_hash, index_name = nil) ⇒ 사양
제공된 키에 대한 인덱스 사양을 가져옵니다.
114 115 116 117 118 |
# 파일 'lib/mongoid/indexable.rb', 114줄 def index_specation(index_hash, index_name = nil) index_specations.감지 do |사양| 사양.superficial_match?(키: index_hash, 이름: index_name) end end |
#remove_indexes ⇒ true
실제 인덱스 제거 코멘트를 MongoDB 운전자 에 전송하되, _id 는 그대로 유지합니다.
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# 파일 'lib/mongoid/indexable.rb', 48줄 def remove_indexes indexed_database_names.각 do |database| 와(database: database) do |class| class.컬렉션.인덱스(세션: _session).각 do |사양| 다음 만약 사양['name'] == '_id_' class.컬렉션.인덱스(세션: _session).drop_one(사양['key']) 로거.정보( "MONGOID: 컬렉션 에서'#{spec['name']}'인덱스 제거" + "'#{klass.컬렉션.name}' 데이터베이스 '#{데이터베이스}'." ) end 구출 mongo::오류::OperationFailure end end 개인정보 정책에 true end |