클래스: Mongo::CashingCursor

상속:
커서
  • 객체
모두 표시
다음에 정의됨:
build/ruby-driver-v2.19/lib/mongo/cashing_cursor.rb

개요

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

인스턴스 속성 요약 접기

커서에서 상속된 속성

#initial_result, #resume_token, #server, #view

인스턴스 메서드 요약 접기

커서에서 상속된 메서드

#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의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

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

반환합니다:

  • (배열 <BSON::Document>)

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



28
29
30
# 파일 'build/ruby-driver-v2.19/lib/mongo/cashing_cursor.rb', 줄 28

def cached_docs
  @cached_docs
end

인스턴스 메서드 세부 정보

#각각객체

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

예시:

문서를 반복합니다.

cursor.each do |doc|
  # ...
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 표현을 가져옵니다.

예시:

커서를 검사합니다.

cursor.inspect

반환합니다:

  • (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