클래스: Mongoid::Contextual::Memory
- 상속:
-
객체
- 객체
- Mongoid::Contextual::Memory
- 다음을 포함합니다.
- 열거형, 연관 관계::EagerLoadable, Aggregable::Memory, Queryable, 위치
- 다음에 정의됨:
- lib/mongoid/contextual/memory.rb
개요
애플리케이션 메모리에 로드된 문서에 대해 대량 쿼리 및 지속성 작업을 수행하는 데 사용되는 컨텍스트 객체 입니다. 이 클래스의 메서드 인터페이스는 Mongoid::Contextual::Mongo와 일관적인 합니다.
인스턴스 속성 요약 접기
-
문서 #개 ⇒ 객체
읽기 전용
속성 문서의 값을 반환합니다.
- #매칭 선택기와 일치하는 메모리 내 문서입니다.(The) ⇒ 객체 읽기 전용
-
#경로 ⇒ 객체
읽기 전용
속성 경로의 값을 반환합니다.
- #경로 원자 경로입니다.(Theatomicpath.) ⇒ 객체 읽기 전용
-
#루트 ⇒ 객체
읽기 전용
속성 루트의 값을 반환합니다.
- #root 루트 문서 입니다.(루트 문서.) ⇒ 객체 읽기 전용
-
#선택기 ⇒ 객체
읽기 전용
속성 선택기의 값을 반환합니다.
- #선택기 루트 문서 선택기입니다.(루트 문서 선택기.) ⇒ 객체 읽기 전용
Queryable에 포함된 속성
#collection, #collection 쿼리할 컬렉션입니다., #criteria, #criteria 컨텍스트에 대한 기준입니다., #klass, #klass 기준에 대한 klass입니다.
인스턴스 메서드 요약 접기
-
#==(기타) ⇒ true | false
컨텍스트가 다른 객체 와 동일한지 확인합니다.
-
#삭제 ⇒ nil (동의어: #delete_all)
데이터베이스에서 선택기와 일치하는 모든 문서를 삭제합니다.
-
#파괴 ⇒ nil (동의어: #destory_all)
데이터베이스 에서 선택기와 일치하는 모든 문서를 삭제합니다.
-
#distinct(field) ⇒ Array<Object>
제공된 필드 에 대해 db에서 고유 값을 가져옵니다.
-
#각각(&block) ⇒ 열거자
컨텍스트를 반복합니다.
-
#존재합니까?(id_or_conditions = :none) ⇒ true | false
컨텍스트에 해당하는 문서가 있나요?
-
#다섯 번째 ⇒ 문서
기준 선택기에 대해 데이터베이스 에서 다섯 번째 문서 가져옵니다.
-
#다섯 번째! ⇒ 문서
기준 선택기에 대해 데이터베이스 에서 다섯 번째 문서 가져오거나, 문서를 찾을 수 없는 경우 오류를 발생시킵니다.
-
#first(limit = nil) ⇒ 문서 (동의어: #one, #find_first)
기준 선택기에 대한 데이터베이스 의 첫 번째 문서 가져옵니다.
-
#먼저! ⇒ 문서
기준 선택기에 대해 데이터베이스 에서 첫 번째 문서 가져오거나, 문서를 찾을 수 없는 경우 오류를 발생시킵니다.
-
#네 번째 ⇒ 문서
기준 선택기에 대해 데이터베이스 에서 네 번째 문서 가져옵니다.
-
#네 번째! ⇒ 문서
기준 선택기에 대해 데이터베이스 에서 네 번째 문서 가져오거나, 문서를 찾을 수 없는 경우 오류를 발생시킵니다.
-
#inc(incs) ⇒ Enumerator
모든 문서의 값을 증가시킵니다.
-
#초기화(기준) ⇒ 메모리
생성자
메모리 컨텍스트에서 새로운 항목을 생성합니다.
-
#last(limit = nil) ⇒ Document
기준 선택기에 대해 데이터베이스 의 마지막 문서 가져옵니다.
-
#last! ⇒ Document
기준 선택기에 대해 데이터베이스 에서 마지막 문서 가져오거나, 기준 선택기를 찾을 수 없는 경우 오류를 발생시킵니다.
-
#length ⇒ 정수 (동의어: #size)
컨텍스트에서 일치하는 문서의 길이를 가져옵니다.
-
#limit(value) ⇒ 메모리
반환되는 문서 수를 제한합니다.
-
#pick(*fields) ⇒ 객체 | Array<Object>
메모리에서 필드 값을 선택합니다.
-
#puck(*fields) ⇒ Array<Object> | Array<Array<Object>>
메모리에서 필드 값을 가져옵니다.
-
#초 ⇒ 문서
기준 선택기에 대해 데이터베이스 에서 두 번째 문서 가져옵니다.
-
#초! ⇒ 문서
기준 선택기에 대해 데이터베이스 에서 두 번째 문서 가져오거나, 문서를 찾을 수 없는 경우 오류를 발생시킵니다.
-
#second_to_last ⇒ 문서
기준 선택기에 대해 데이터베이스 의 마지막 문서에서 두 번째 문서 가져옵니다.
-
#second_to_last! ⇒ 문서
기준 선택기에 대해 데이터베이스 의 마지막 문서에서 두 번째 문서 가져오거나, 문서를 찾을 수 없는 경우 오류를 발생시킵니다.
-
#skip(value) ⇒ 메모리
제공된 수의 문서를 건너뜁니다.
-
#sort(values) ⇒ Memory
제공된 사양에 따라 문서를 정렬합니다.
-
#take(limit = nil) ⇒ Document
데이터베이스에서 지정된 수의 문서를 가져옵니다.
-
#take! ⇒ Document
데이터베이스 에서 지정된 수의 문서를 가져오거나, 문서가 발견되지 않으면 오류를 발생시킵니다.
-
#tally(필드) ⇒ 해시
메모리의 필드 값을 집계합니다.
-
#세 번째 ⇒ 문서
기준 선택기에 대해 데이터베이스 에서 세 번째 문서 가져옵니다.
-
#세 번째! ⇒ 문서
기준 선택기에 대해 데이터베이스 에서 세 번째 문서 가져오거나, 문서를 찾을 수 없는 경우 오류를 발생시킵니다.
-
#Third_to_last ⇒ 문서
기준 선택기에 대해 데이터베이스 의 마지막 문서에서 세 번째 문서 가져옵니다.
-
#Third_to_last! ⇒ 문서
기준 선택기에 대해 데이터베이스 에서 마지막에서 세 번째 문서 가져오거나, 문서를 찾을 수 없는 경우 오류를 발생시킵니다.
-
#update(attributes = nil) ⇒ nil | false
일치하는 첫 번째 문서 원자적으로 업데이트합니다.
-
#update_all(attributes = nil) ⇒ nil | false
일치하는 모든 문서를 원자적으로 업데이트합니다.
Positional에 포함된 메서드
Queryable에 포함된 메서드
연관 관계::EagerLoadable에 포함된 메서드
#create_pipeline, #eager_load, #eager_load_with_lookup, #eager_loadable?, #preload, #preload_for_lookup, #switch_local_and_foreign_fields?
Aggregable::Memory에 포함된 메서드
#aggregates, #avg, #max, #min, #sum
생성자 세부 정보
인스턴스 속성 세부 정보
문서 # 개 ⇒ 객체 (읽기 전용)
속성 문서의 값을 반환합니다.
23 24 25 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 23 def 문서 @documents end |
#매칭 선택기와 일치하는 메모리 내 문서입니다.(The) ⇒ 객체 (읽기 전용)
23 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 23 attr_reader :documents, :path, :root, :selector |
#경로 ⇒ 객체 (읽기 전용)
속성 경로의 값을 반환합니다.
23 24 25 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 23 def 경로 @path end |
#경로 원자 경로입니다.(Theatomicpath.) ⇒ 객체 (읽기 전용)
23 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 23 attr_reader :documents, :path, :root, :selector |
#루트 ⇒ 객체 (읽기 전용)
속성 루트의 값을 반환합니다.
23 24 25 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 23 def 루트 @root end |
#root 루트 문서 입니다.(루트 문서.) ⇒ 객체 (읽기 전용)
23 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 23 attr_reader :documents, :path, :root, :selector |
#선택기 ⇒ 객체 (읽기 전용)
속성 선택기의 값을 반환합니다.
23 24 25 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 23 def 선택기 @selector end |
#선택기 루트 문서 선택기입니다.(루트 문서 선택기.) ⇒ 객체 (읽기 전용)
23 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 23 attr_reader :documents, :path, :root, :selector |
인스턴스 메서드 세부 정보
#==(기타) ⇒ true | false
컨텍스트가 다른 객체 와 동일한지 확인합니다.
33 34 35 36 37 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 33 def ==(기타) 반환 거짓 하지 않는 한 기타.response_to?(:entries) 항목 == 기타.항목 end |
#delete ⇒ nil 또한 다음과 같습니다: delete_all
데이터베이스에서 선택기와 일치하는 모든 문서를 삭제합니다.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 45 def 삭제 Deleted = 카운트 제거됨 = map do |doc| prepare_remove(doc) doc.send(:as_attributes) end 하지 않는 한 제거됨.비어 있나요? 컬렉션.찾기(선택기).update_one( 위치적으로(선택기, '$pullAll' => { 경로 => 제거됨 }), 세션: _session ) end Deleted end |
#Destory ⇒ nil ~라고도 함: Destory_all
데이터베이스 에서 선택기와 일치하는 모든 문서를 삭제합니다.
67 68 69 70 71 72 73 74 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 67 def 파괴 Deleted = 카운트 각 do |doc| 문서.delete_one(doc) doc.파괴 end Deleted end |
#distinct(field) ⇒ Array<Object>
제공된 필드 에 대해 db에서 고유 값을 가져옵니다.
85 86 87 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 85 def 별개(필드) 뽑다(필드).uniq end |
#각각(&block) ⇒ 열거자
컨텍스트를 반복합니다. 차단 이 제공되면 각각에 대해 Mongoid 문서 에 양보하고, 그렇지 않으면 열거형 을 반환합니다.
98 99 100 101 102 103 104 105 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 98 def 각(&차단) 만약 block_given? documents_for_iteration.각(&차단) self other to_enum end end |
#존재합니까?(id_or_conditions = :none) ⇒ true | false
컨텍스트에 해당하는 문서가 있나요?
123 124 125 126 127 128 129 130 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 123 def 존재합니까?(id_or_conditions = : none) case id_or_conditions when : none then 어떤? when nil, 거짓 then 거짓 when 해시 then 메모리.신규(기준.위치(id_or_conditions)).존재합니까? other 메모리.신규(기준.위치(_id: id_or_conditions)).존재합니까? end end |
#다섯 번째 ⇒ 문서
기준 선택기에 대해 데이터베이스 에서 다섯 번째 문서 가져옵니다.
456 457 458 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 456 def 다섯 번째 Eager_load([ 문서.다섯 번째 ]).first end |
#다섯 번째! ⇒ 문서
기준 선택기에 대해 데이터베이스 에서 다섯 번째 문서 가져오거나, 문서를 찾을 수 없는 경우 오류를 발생시킵니다.
470 471 472 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 470 def 다섯 번째! 다섯 번째 || raise_document_not_Found_error end |
#first(limit = nil) ⇒ 문서 또한 다음과 같이 알려져 있습니다: one, find_first
기준 선택기에 대한 데이터베이스 의 첫 번째 문서 가져옵니다.
140 141 142 143 144 145 146 147 148 149 150 151 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 140 def first(limit = nil) use_first = limit.nil? limit ||= 1 만약 기준.use_lookup? @criteria = 기준.limit(limit) 결과 = Eager_load_with_lookup other 결과 = Eager_load(문서.first(limit)) end use_first ? 결과.first : 결과 end |
#먼저! ⇒ 문서
기준 선택기에 대해 데이터베이스 에서 첫 번째 문서 가져오거나, 문서를 찾을 수 없는 경우 오류를 발생시킵니다.
165 166 167 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 165 def 먼저! first || raise_document_not_Found_error end |
#네 번째 ⇒ 문서
기준 선택기에 대해 데이터베이스 에서 네 번째 문서 가져옵니다.
432 433 434 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 432 def 네 번째 Eager_load([ 문서.네 번째 ]).first end |
#네 번째! ⇒ 문서
기준 선택기에 대해 데이터베이스 에서 네 번째 문서 가져오거나, 문서를 찾을 수 없는 경우 오류를 발생시킵니다.
446 447 448 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 446 def 네 번째! 네 번째 || raise_document_not_Found_error end |
#inc(incs) ⇒ 열거자
모든 문서의 값을 증가시킵니다.
194 195 196 197 198 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 194 def Inc(incs) 각 do |문서| 문서.Inc(incs) end end |
#last(limit = nil) ⇒ Document
기준 선택기에 대해 데이터베이스 의 마지막 문서 가져옵니다.
208 209 210 211 212 213 214 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 208 def last(limit = nil) 만약 limit Eager_load(문서.last(limit)) other Eager_load([ 문서.last ]).first end end |
마지막으로 #! ⇒ 문서
기준 선택기에 대해 데이터베이스 에서 마지막 문서 가져오거나, 기준 선택기를 찾을 수 없는 경우 오류를 발생시킵니다.
226 227 228 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 226 def 마지막! last || raise_document_not_Found_error end |
#길이 ⇒ 정수 ~라고도 함: 크기
컨텍스트에서 일치하는 문서의 길이를 가져옵니다.
236 237 238 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 236 def 분량 문서.분량 end |
#limit(value) ⇒ 메모리
반환되는 문서 수를 제한합니다.
249 250 251 252 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 249 def limit(value) self.제한 = value self end |
#pick(*fields) ⇒ 객체 | Array<Object>
메모리에서 필드 값을 선택합니다.
276 277 278 279 280 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 276 def pick(*필드) 반환 하지 않는 한 doc = 문서.first puck_from_doc(doc, *필드) end |
#puck(*fields) ⇒ Array<Object> | Array<Array<Object>>
메모리에서 필드 값을 가져옵니다.
262 263 264 265 266 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 262 def 뽑다(*필드) 문서.map do |doc| puck_from_doc(doc, *필드) end end |
#초 ⇒ 문서
기준 선택기에 대해 데이터베이스 에서 두 번째 문서 가져옵니다.
384 385 386 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 384 def 초 Eager_load([ 문서.초 ]).first end |
#초! ⇒ 문서
기준 선택기에 대해 데이터베이스 에서 두 번째 문서 가져오거나, 문서를 찾을 수 없는 경우 오류를 발생시킵니다.
398 399 400 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 398 def 두 번째! 초 || raise_document_not_Found_error end |
#second_to_last ⇒ 문서
기준 선택기에 대해 데이터베이스 의 마지막 문서에서 두 번째 문서 가져옵니다.
480 481 482 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 480 def second_to_last Eager_load([ 문서.second_to_last ]).first end |
#second_to_last! ⇒ 문서
기준 선택기에 대해 데이터베이스 의 마지막 문서에서 두 번째 문서 가져오거나, 문서를 찾을 수 없는 경우 오류를 발생시킵니다.
494 495 496 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 494 def second_to_last! second_to_last || raise_document_not_Found_error end |
#skip(value) ⇒ 메모리
제공된 수의 문서를 건너뜁니다.
336 337 338 339 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 336 def 건너뛰기(value) self.건너뛰기 = value self end |
#sort(values) ⇒ Memory
제공된 사양에 따라 문서를 정렬합니다.
350 351 352 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 350 def sort(values) in_place_sort(values) 개인정보 정책에 self end |
#take(limit = nil) ⇒ Document
데이터베이스에서 지정된 수의 문서를 가져옵니다.
306 307 308 309 310 311 312 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 306 def 가져(limit = nil) 만약 limit Eager_load(문서.가져(limit)) other Eager_load([ 문서.first ]).first end end |
#take! ⇒ Document
데이터베이스 에서 지정된 수의 문서를 가져오거나, 문서가 발견되지 않으면 오류를 발생시킵니다.
324 325 326 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 324 def 받아! 가져 || raise_document_not_Found_error end |
#tally(필드) ⇒ 해시
메모리의 필드 값을 집계합니다.
290 291 292 293 294 295 296 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 290 def tally(필드) 문서.each_with_object({}) do |d, acc| v = recover_value_at_path(d, 필드) acc[v] ||= 0 acc[v] += 1 end end |
#세 번째 ⇒ 문서
기준 선택기에 대해 데이터베이스 에서 세 번째 문서 가져옵니다.
408 409 410 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 408 def 세 번째 Eager_load([ 문서.세 번째 ]).first end |
#세 번째! ⇒ 문서
기준 선택기에 대해 데이터베이스 에서 세 번째 문서 가져오거나, 문서를 찾을 수 없는 경우 오류를 발생시킵니다.
422 423 424 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 422 def 세 번째! 세 번째 || raise_document_not_Found_error end |
#Third_to_last ⇒ 문서
기준 선택기에 대해 데이터베이스 의 마지막 문서에서 세 번째 문서 가져옵니다.
504 505 506 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 504 def Third_to_last Eager_load([ 문서.Third_to_last ]).first end |
#Third_to_last! ⇒ 문서
기준 선택기에 대해 데이터베이스 에서 마지막에서 세 번째 문서 가져오거나, 문서를 찾을 수 없는 경우 오류를 발생시킵니다.
518 519 520 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 518 def Third_to_last! Third_to_last || raise_document_not_Found_error end |
#update(attributes = nil) ⇒ nil | false
일치하는 첫 번째 문서 원자적으로 업데이트합니다.
362 363 364 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 362 def update(속성 = nil) update_documents(속성, [ first ]) end |
#update_all(attributes = nil) ⇒ nil | false
일치하는 모든 문서를 원자적으로 업데이트합니다.
374 375 376 |
# 파일 'lib/mongoid/contextual/memory.rb', 줄 374 def update_all(속성 = nil) update_documents(속성, 항목) end |