모듈: 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뿐입니다.
76 77 78 79 80 81 |
# 파일 'lib/mongoid/indexable.rb', 76줄 def add_indexes 만약 유전? && !index_keys.포함?(self.판별자_키.to_sym => 1) index({ self.판별자_키.to_sym => 1 }, unique: 거짓, 배경: true) end true end |
#create_indexes ⇒ true
실제 인덱스 생성 주석을 MongoDB 드라이버에 보냅니다.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# 파일 'lib/mongoid/indexable.rb', 27줄 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
제공된 단일 또는 복합 키에 대한 인덱스 정의를 추가합니다.
96 97 98 99 100 101 |
# 파일 'lib/mongoid/indexable.rb', 96줄 def index(사양, = nil) 사양 = 사양.신규(self, 사양, ) 만약 !index_specations.포함?(사양) index_specations.push(사양) end end |
#index_specation(index_hash, index_name = nil) ⇒ 사양
제공된 키에 대한 인덱스 사양을 가져옵니다.
112 113 114 115 116 117 |
# 파일 'lib/mongoid/indexable.rb', 112줄 def index_specation(index_hash, index_name = nil) index = OpenStruct.신규(필드: index_hash.키, 키: index_hash) index_specations.감지 do |사양| 사양 == index || (index_name && index_name == 사양.이름) end end |
#remove_indexes ⇒ true
실제 인덱스 제거 코멘트를 MongoDB 운전자 에 전송하되, _id 는 그대로 유지합니다.
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# 파일 'lib/mongoid/indexable.rb', 51줄 def remove_indexes indexed_database_names.각 do |database| 와(database: database) do |class| 시작 class.컬렉션.인덱스(세션: _session).각 do |사양| 하지 않는 한 사양["name"] == "_id_" class.컬렉션.인덱스(세션: _session).drop_one(사양["키"]) 로거.정보( "MONGOID: 제거된 인덱스 '#{spec["name"]} ' + "'#{klass.컬렉션.name}' 데이터베이스 '#{데이터베이스}'." ) end end 구출 mongo::오류::OperationFailure; end end end 개인정보 정책에 true end |