모듈: Mongoid::Clients::Options

확장자:
ActiveSupport::Concern
포함 항목:
Mongoid::Clients, Mongoid::Criteria
다음에 정의됨:
lib/mongoid/clients/options.rb

개요

Mongoid::Document에 포함된 Mixin 모듈은 지속성 및 쿼리 작업을 위한 데이터베이스 컨텍스트를 관리 수 있는 기능 을 제공합니다. 예를 예시, 여기에는 문서를 다른 컬렉션에 저장하고 세컨더리 인스턴스에서 문서를 읽는 것이 포함됩니다.

네임스페이스 아래에 정의됨

모듈: 클래스 메서드

인스턴스 메서드 요약 접기

인스턴스 메서드 세부 정보

#컬렉션(parent = nil) ⇒ Mongo::Collection

문서의 현재 지속성 컨텍스트에 대한 컬렉션 을 가져옵니다.

예시:

현재 지속성 컨텍스트에 대한 컬렉션 을 가져옵니다.

document.collection

매개변수:

  • 부모 (객체) (기본값: nil)

    현재 지속성 컨텍스트의 컬렉션 이름 대신 컬렉션 이름이 사용되는 상위 객체 입니다.

반환합니다:

  • (Mongo::Collection)

    현재 지속성 컨텍스트에 대한 컬렉션 입니다.



47
48
49
# 파일 'lib/mongoid/clients/options.rb', 줄 47

def 컬렉션(부모 = nil)
  persistence_context.컬렉션(부모)
end

#collection_namestring

문서의 현재 지속성 컨텍스트에 대한 컬렉션 이름을 가져옵니다.

예시:

현재 지속성 컨텍스트에 대한 컬렉션 이름을 가져옵니다.

document.collection_name

반환합니다:

  • (string)

    현재 지속성 컨텍스트의 컬렉션 이름입니다.



58
59
60
# 파일 'lib/mongoid/clients/options.rb', 줄 58

def collection_name
  persistence_context.collection_name
end

#mongo_clientMongo::Client

문서의 현재 지속성 컨텍스트에 대한 데이터베이스 클라이언트 를 가져옵니다.

예시:

현재 지속성 컨텍스트에 대한 클라이언트 를 가져옵니다.

document.mongo_client

반환합니다:

  • (Mongo::Client)

    현재 지속성 컨텍스트에 대한 클라이언트 입니다.



69
70
71
# 파일 'lib/mongoid/clients/options.rb', 줄 69

def mongo_client
  persistence_context.고객
end

#persistence_contextMongoid::PersistenceContext

참고:

내장된 문서의 경우 루트 상위 문서 의 지속성 컨텍스트가 반환됩니다.

문서의 현재 지속성 컨텍스트를 가져옵니다.

예시:

현재 지속성 컨텍스트를 가져옵니다.

document.persistence_context

반환합니다:



83
84
85
86
87
88
89
90
91
# 파일 'lib/mongoid/clients/options.rb', 줄 83

def persistence_context
  만약 임베디드? && !_root?
    _root.persistence_context
  other
    PersistenceContext.get(self) ||
      PersistenceContext.get(self.클래스) ||
      PersistenceContext.신규(self.클래스, storage_options)
  end
end

#persistence_context?true | false

참고:

내장된 문서의 경우 루트 상위 문서 의 지속성 컨텍스트가 사용됩니다.

문서 또는 문서의 클래스에 대해 지속성 컨텍스트가 설정하다 있는지 여부를 반환합니다.

예시:

현재 지속성 컨텍스트를 가져옵니다.

document.persistence_context?

반환합니다:

  • (true | false)

    지속성 컨텍스트의 설정하다 여부입니다.



103
104
105
106
107
108
109
110
111
# 파일 'lib/mongoid/clients/options.rb', 줄 103

def persistence_context?
  만약 임베디드? && !_root?
    _root.persistence_context?
  other
    Memoryd_storage_options&.어떤? ||
      PersistenceContext.get(self).현재? ||
      PersistenceContext.get(self.클래스).현재?
  end
end

#with(options_or_context, &block) ⇒ 객체

차단 하는 동안 이 객체 에 대한 지속성 컨텍스트를 변경합니다.

예시:

현재 문서 를 다른 컬렉션 에 저장합니다.

model.with(collection: "bands") do |m|
  m.save
end

매개변수:

  • options_or_context (해시 | Mongoid::PersistenceContext)

    스토리지 옵션 또는 지속성 컨텍스트입니다.

  • 옵션 (해시)

    사용자 지정 가능한 옵션 세트



28
29
30
31
32
33
34
35
# 파일 'lib/mongoid/clients/options.rb', 줄 28

def (options_or_context, &차단)
  original_context = PersistenceContext.get(self)
  original_cluster = persistence_context.cluster
  set_persistence_context(options_or_context)
  yield self
보장
  clear_persistence_context(original_cluster, original_context)
end