클래스: Mongo::CashingCursor
- 다음에 정의됨:
- build/ruby-driver-v2.19/lib/mongo/cashing_cursor.rb
개요
동일한 쿼리가 이미 실행된 경우 데이터베이스에 도달하기 전에 먼저 메모리에서 문서를 로드하려고 시도하는 커서입니다.
인스턴스 속성 요약 접기
-
#cached_docs ⇒ 배열 <BSON::Document>
읽기 전용
비공개
커서의 캐시된 문서입니다.
커서에서 상속된 속성
#initial_result, #resume_token, #server, #view
인스턴스 메서드 요약 접기
-
#각각 ⇒ 객체
캐시된 문서가 커서에 이미 있는 경우 이를 반복하며, 그렇지 않으면 정상적으로 진행합니다.
-
#검사 ⇒ string
사람이 읽을 수 있는
Cursor
의 string 표현을 가져옵니다. -
#try_next ⇒ 객체
비공개
커서 반복을 위해 다음 문서를 획득한 다음 해당 문서를 @cached_docs 배열에 삽입합니다.
커서에서 상속된 메서드
#batch_size, #close, #closed?, #collection_name, finalize, #fully_iterated?, #get_more, #id, #initialize, #kill_spec, #to_return
Retryable에 포함된 메서드
#read_Worker, #select_server, #write_Worker
생성자 세부 정보
이 클래스는 Mongo::Cursor에서 생성자를 상속합니다.
인스턴스 속성 세부 정보
#cached_docs ⇒ 배열 <BSON::Document> (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
커서의 캐시된 문서를 반환합니다.
28 29 30 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/cashing_cursor.rb', 줄 28 def cached_docs @cached_docs end |
인스턴스 메서드 세부 정보
#각각 ⇒ 객체
캐시된 문서가 커서에 이미 있는 경우 이를 반복하며, 그렇지 않으면 정상적으로 진행합니다.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/cashing_cursor.rb', 줄 37 def 각 만약 @cached_docs @cached_docs.각 do |doc| yield doc end 하지 않는 한 닫힘? # try_next에 의해 발생한 StopIteration은 이 루프를 종료합니다. 루프 do 문서 = try_next yield 문서 만약 문서 end end other super end end |
#검사 ⇒ string
사람이 읽을 수 있는 Cursor
의 string 표현을 가져옵니다.
61 62 63 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/cashing_cursor.rb', 줄 61 def 검사 "#<Mongo::CachingCursor:0x#{object_id} @view=#{@view.검사}>" end |
#try_next ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
커서 반복을 위해 다음 문서를 획득한 다음 해당 문서를 @cached_docs 배열에 삽입합니다.
69 70 71 72 73 74 75 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/cashing_cursor.rb', 줄 69 def try_next @cached_docs ||= [] 문서 = super @cached_docs << 문서 만약 문서 문서 end |