클래스: Mongo::CashingCursor

상속:
커서
  • 객체
모두 표시
다음에 정의됨:
lib/mongo/caching_cursor.rb

개요

동일한 쿼리가 이미 실행된 경우 데이터베이스에 도달하기 전에 먼저 메모리에서 문서를 로드하려고 시도하는 커서입니다.

인스턴스 속성 요약 접기

커서에서 상속된 속성

#connection, #context, #initial_result, #resume_token, # 서버, #view

인스턴스 메서드 요약 접기

커서에서 상속된 메서드

#batch_size, #close, #closed?, #collection_name, finalize, #fully_iterated?, #get_more, #id, #initialize, #kill_spec, #refresh_timeout!

Retryable에 포함된 메서드

#read_Worker, #select_server, #with_overload_retry, #write_Worker

생성자 세부 정보

이 클래스는 Mongo::Cursor에서 생성자를 상속합니다.

인스턴스 속성 세부 정보

#cached_docs배열 <BSON::Document> (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

커서의 캐시된 문서를 반환합니다.

반환합니다:

  • (배열 <BSON::Document>)

    커서의 캐시된 문서입니다.



25
26
27
# 파일 'lib/ Mongo/cashing_cursor.rb', 줄 25

def cached_docs
  @cached_docs
end

인스턴스 메서드 세부 정보

#각각(&block) ⇒ 객체

캐시된 문서가 커서에 이미 있는 경우 이를 반복하며, 그렇지 않으면 정상적으로 진행합니다.

예시:

문서를 반복합니다.

cursor.each do |doc|
  # ...
end


34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# 파일 'lib/ Mongo/cashing_cursor.rb', 줄 34

def (&차단)
  만약 @cached_docs
    @cached_docs.(&차단)

    하지 않는 한 닫힘?
      # try_next에 의해 발생한 StopIteration은 이 루프를 종료합니다.
      루프 do
        문서 = try_next
        yield 문서 만약 문서
      end
    end
  other
    super
  end
end

#검사string

사람이 읽을 수 있는 Cursor의 string 표현을 가져옵니다.

예시:

커서를 검사합니다.

cursor.inspect

반환합니다:

  • (string)

    Cursor 인스턴스의 string 표현입니다.



56
57
58
# 파일 'lib/ Mongo/cashing_cursor.rb', 줄 56

def 검사
  "#<Mongo::CachingCursor:0x#{object_id} @view=#{@view.검사}>"
end

#try_next객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

커서 반복을 위해 다음 문서를 획득한 다음 해당 문서를 @cached_docs 배열에 삽입합니다.



64
65
66
67
68
69
70
# 파일 'lib/ Mongo/cashing_cursor.rb', 줄 64

def try_next
  @cached_docs ||= []
  문서 = super
  @cached_docs << 문서 만약 문서

  문서
end