Módulo: Mongoid::Clients::opções

Estendido por:
ActiveSupport::Concern
Incluído em:
Mongoid::Clients, Mongoid::Criteria
Definido em:
lib/mongoid/clients/options.rb

Visão geral

Módulo Mixin incluído no Mongoid::Document que oferece a capacidade de gerenciar o contexto do banco de dados de dados para operações de persistência e query. Por exemplo, isso inclui salvar documentos em collections diferentes e ler documentos de instâncias secundárias.

Definido sob namespace

Módulos: Métodos de classe

Recolhimento do Resumo do método de instância

Detalhes do método de instância

#collection(parent = nil) ➤ Mongo::Collection

Obtenha a coleção para o contexto de persistência atual do documento.

Exemplos:

Obtenha a coleção para o contexto de persistência atual.

document.collection

Parâmetros:

  • principal (Objeto) (padrão para: nil)

    O objeto principal cujo nome de coleção é usado em vez do nome de coleção do contexto de persistência atual.

Retorna:

  • (Mongo::Collection)

    A coleção para o contexto de persistência atual.



47
48
49
# Arquivo 'lib/mongoid/clients/options.rb', linha 47

def collection(principal = nada)
  persistence_context.collection(principal)
end

#collection_namestring

Obtenha o nome da coleção para o contexto de persistência atual do documento.

Exemplos:

Obtenha o nome da coleção para o contexto de persistência atual.

document.collection_name

Retorna:

  • (string)

    O nome da coleção para o contexto de persistência atual.



58
59
60
# Arquivo 'lib/mongoid/clients/options.rb', linha 58

def collection_name
  persistence_context.collection_name
end

#mongo_client ➤ Mongo::Client

Obtenha o cliente de banco de dados de dados para o contexto de persistência atual do documento.

Exemplos:

Obtenha o cliente para o contexto de persistência atual.

document.mongo_client

Retorna:

  • (Mongo::Client)

    O cliente para o contexto de persistência atual.



69
70
71
# Arquivo 'lib/mongoid/clients/options.rb', linha 69

def mongo_client
  persistence_context.Cliente
end

#persistence_context ➤ Mongoid::PersistenceContext

Observação:

Para documentos incorporados, o contexto de persistência do documento pai raiz é retornado.

Obtenha o contexto de persistência atual do documento.

Exemplos:

Obtenha o contexto de persistência atual.

document.persistence_context

Retorna:



83
84
85
86
87
88
89
90
91
# Arquivo 'lib/mongoid/clients/options.rb', linha 83

def persistence_context
  se incorporado? && !_root?
    _root.persistence_context
  mais
    PersistenceContext.obter(auto) ||
      PersistenceContext.obter(auto.classe) ||
      PersistenceContext.Novo(auto.classe, storage_options)
  end
end

#persistence_context?verdadeiro | false

Observação:

Para documentos incorporados, o contexto de persistência do documento pai raiz é usado.

Retorna se um contexto de persistência está definido para o documento ou a classe do documento.

Exemplos:

Obtenha o contexto de persistência atual.

document.persistence_context?

Retorna:

  • (verdadeiro | falso)

    Se um contexto de persistência está definido.



103
104
105
106
107
108
109
110
111
# Arquivo 'lib/mongoid/clients/options.rb', linha 103

def persistence_context?
  se incorporado? && !_root?
    _root.persistence_context?
  mais
    lembrei-me do armazenamento_opções&.algum? ||
      PersistenceContext.obter(auto).presente? ||
      PersistenceContext.obter(auto.classe).presente?
  end
end

#com(options_or_context, &block) ➤ Objeto

Altere o contexto de persistência deste objeto durante o bloqueio.

Exemplos:

Salve o documento atual em outra collection.

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

Parâmetros:

  • options_or_context (Hash | Mongoid::PersistenceContext)

    As opções de armazenamento ou um contexto de persistência.

  • opções (Hash)

    um conjunto personalizável de opções



28
29
30
31
32
33
34
35
# Arquivo 'lib/mongoid/clients/options.rb', linha 28

def com(options_or_context, &noum: bloco ; verb: bloquear)
  original_context = PersistenceContext.obter(auto)
  original_cluster = persistence_context.cluster
  set_persistence_context(options_or_context)
  rendimento auto
garantir
  clear_persistence_context(original_cluster, original_context)
end