Módulo: Mongoid::Document
- Estendido por:
- ActiveSupport::Concern
- Inclui:
- Composto, tocável::InstanceMethods
- Incluído em:
- Comentário, GlobalDiscriminatorKeyAssignment::InvalidFieldHost, Post
- Definido em:
- lib/mongoid/ documento.rb
Visão geral
Esse é o módulo base para todos os objetos de domínio que precisam ser mantidos no banco de dados como documentos.
Definido sob namespace
Módulos: Métodos de classe
Colapsode resumo constante
- ILLEGAL_KEY =
Regex para corresponder chaves BSON ilegais. Observe que o bson 4.1 tem o constante BSON::String::ILLEGAL_KEY que deve ser usado no lugar. Quando o driver Ruby 2.3.0 for lançado e o Mongoid puder ser atualizado para exigir >= 2.3.0, a constante BSON poderá ser usada.
/(\A[$])|(\.)/.congelar
Constantes incluídas no Compose
Componível::MODULES, Componível::RESERVED_METHOD_NAMES
Constantes incluídas do Interceptable
Constantes incluídas da associação
Constantes incluídas de Associação::Dependendo
Associação::Dependendo::estratégias
Constantes incluídas do Persistable
Constantes incluídas de Campos
Campos::Boolean, Campos::IDS, Campos::INVALID_BSON_CLASSES, Campos::StringifiedSymbol, Campos::TYPE_MAPPINGS
Constantes incluídas do Atomic
Recolhimento do Resumo do atributo de instância
-
#__selected_fields ➤ Objeto
Retorna o valor do atributo __selected_fields.
-
#new_record ➤ Objeto
Somente leitura
Retorna o valor do atributo new_record.
Atributos incluídos de Stateful
#destroyed, #flog_for_destroy, #previously_new_record
Atributos incluídos da associação
Atributos incluídos de Atributos
Atributos incluídos de Clientes::StorageOptions
Recolhimento do Resumo do método de instância
-
#_handle_callbacks_after_instanciation(execute_callbacks) ➤ Object
privado
Lida com a configuração e execução de retornos de chamada, se os retornos de chamada forem para ser executados; caso contrário, adiciona as chamadas de resposta apropriadas à lista de chamadas de resposta pendentes.
-
#as_document ➤ Hash
Retorne um hash de toda a hierarquia do documento a partir deste documento e abaixo.
-
#as_json(options = nil) ⇒ Hash
Chama #as_json no documento com opções adicionais específicas do Mongoid.
-
#torna -se (klass) ➤ Documento
Retorna uma instância da classe especificada com os atributos, erros e documentos incorporados do documento atual.
-
#documentos de documentos de documentos de documentos de documentos de documentos
Congela os atributos internos do documento.
-
#frozen? ⇒ true | false
Verifica se o documento está congelado.
-
#hash ➤ inteiro
Delega à identidade para permitir que dois registros da mesma identidade funcionem com algo como:
-
#identity ➤ Array
O documento de um documento é identificado absolutamente por sua classe e ID do banco de dados de dados:.
-
#initialize(attrs = nil, &block) ⇒ Document
Instancie um novo
Document
, definindo os atributos do documento, se fornecidos. -
#internal_state=(estado) ➤ Objeto
privado
Define o estado interno deste documento.
-
#model_name ➤ string
Retorne o nome do modelo do documento.
-
#to_key ➤ string
Retorne o valor chave do documento.
Métodos incluídos do Tocável::InstanceMethods
., #suppress_toque_callbacks, #toque, #toque_callbacks_suppressed?
Métodos incluídos do Composable
Métodos incluídos da equalização
Métodos incluídos em Copyable
Métodos incluídos no Interceptable
— , #in_callback_state? , #pending_callbacks, #pending_callbacks=, #run_after_callbacks, #run_before_callbacks, #run_callbacks, #run_pending_callbacks
Métodos incluídos no Validable
#begin_validate, #exit_validate, #performing_validations?, #read_attribute_for_validation, #valid?, #validado?, #validating_with_query?
Métodos incluídos do Traversable
#_children, #_descendentes, #_parent, #_parent=, #_reset_memoized_descendentes!, #_root, #_root?, #collect_children, #collect_descendentes, #marca_descendentes_persisted, #heredityary?, #parentize, #remove_child, #reset_persisted_descendentes
Métodos incluídos no Cacheable
Métodos incluídos do Stateful
#destruído?, #flog_for_destroy?, #new_record=, #new_record?, #persistiu?, #previously_new_record?, #previously_persisted?, #pushable?, #readonly!, #readonly?, #settable?, #atualizável?
Métodos incluídos no Shardable
#shard_key_field_value, #shard_key_fields, #shard_key_selector, #shard_key_selector_in_db
Métodos incluídos do Serializable
Métodos incluídos em Selectable
Métodos incluídos no Reloadable
Métodos incluídos da associação
#association_name, #embedded?, #embedded_many?, #embedded_one?, #referenced_many?, #referenced_one?, #reload_relations
Métodos incluídos da associação::reflexões
#reflect_on_all_association, #reflect_on_association
Métodos incluídos da associação::macros
Métodos incluídos de Associação::Dependendo
#apply_destroy_dependencies!, define_dependency!, valide!
Métodos incluídos de Associação::Accessors
#__build__, #create_relation, #reset_relation_criteria, #set_relation
Métodos incluídos de Associação::Referenciado::Syncable
#_syncable?, #_synced, #_synced?, #remove_inverse_keys, #update_inverse_keys
Métodos incluídos de Federation::Referenced::CounterCache
define_callbacks!, #reset_counters
Métodos incluídos de Associação::Referenciado::AutoSave
#__autosaving__, #autosaved?, #changed_for_autosave?, define_autosave!
Métodos incluídos no Persistable
#atomicly, #fail_duce_to_callback!, #fail_ue_to_validation!
Métodos incluídos no Persistable::Unsettable
Métodos incluídos do Persistable::Upsertable
Métodos incluídos no Persistable::Updatable
#update, #update!, #update_attribute
Métodos incluídos do Persistable::Settable
Métodos incluídos no Persistable::Sovable
Métodos incluídos no Persistable::Renamable
Métodos incluídos no Persistable::Pushable
Métodos incluídos no Persistable::Pullable
Métodos incluídos no Posicional
Métodos incluídos no Persistable::Poppable
Métodos incluídos no Persistable::Multipliable
Métodos incluídos no Persistable::Minable
Métodos incluídos no Persistable::Maxable
Métodos incluídos no Persistable::Logical
Métodos incluídos no Persistable::Incrementable
Métodos incluídos no Persistable::Destroyable
Métodos incluídos no Persistable::Deletable
Métodos incluídos no Persistable::Creatable
Métodos incluídos do Matchable
Métodos incluídos dos Campos
#apply_default, #apply_defaults, #apply_post_processed_defaults, #apply_pre_processed_defaults, #attribute_names, database_field_name, #database_field_name, #dot_dollar_field?, #lazy_settable?, opção, opções, traverse_association_tree, #using_object_ids?, #validate_write_field_name!
Métodos incluídos no Evolvable
Métodos incluídos dos Atributos
#assign_attributes, #attribute_missing?, #attribute_present?, #attributes_before_type_cast, #has_attribute?, #has_attribute_before_type_cast?, #process_raw_attribute, #read_attribute, #read_attribute_before_type_cast, #remove_attribute, #typed_attributes, #write_attribute, #write_attributes
Métodos incluídos de Attributes::Readonly
Métodos incluídos de Attributes::Processing
Métodos incluídos dos clientes
limpar, clientes, padrão, desconectar, definir, with_name
Métodos incluídos de Clientes::Sessions
Métodos incluídos dos Clientes::Opções
#collection, #collection_name, #mongo_client, #persistence_context, #persistence_context?, #com
Métodos incluídos de Clients::StorageOptions
#remember_storage_options!, #storage_options
Métodos incluídos no Changeable
#attribute_before_last_save, #changed, #changed?, #changed_attributes, #changes, #children_changed?, #move_changes, #post_persist, #previous_changes, #remove_change, #saved_change_to_attribute, #saved_change_to_attribute?, #setters, # will_save_change_to_attribute?
Métodos incluídos do Atomic
#add_atomic_pull, #add_atomic_unset, #atomic_array_add_to_sets, #atomic_array_pulls, #atomic_array_pushes, #atomic_attribute_name, #atomic_delete_modifier, #atomic_insert_modifier, #atomic_path, #atomic_paths, #atomic_position, #atomic_pulls, #atomic_pushes, #atomic_sets, #atomic_unsets, #atomic_updates, #delayed_atomic_pulls, #delayed_atomic_sets, #delayed_atomic_unsets, #marca_as_destroyed, #primaged_destroys, #process_lagaged_destroys
Detalhes do atributo da instância
#__selected_fields ➤ Objeto
Retorna o valor do atributo __selected_fields.
29 30 31 |
# Arquivo 'lib/mongoid/ documento.rb', linha 29 def __selected_fields @__selected_fields end |
#new_record ➤ Object (somente leitura)
Retorna o valor do atributo new_record.
30 31 32 |
# Arquivo 'lib/mongoid/ documento.rb', linha 30 def new_record @new_record end |
Detalhes do método de instância
#_handle_callbacks_after_instanciation(execute_callbacks) ➤ Object
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Lida com a configuração e execução de retornos de chamada, se os retornos de chamada forem para ser executados; caso contrário, adiciona as chamadas de resposta apropriadas à lista de chamadas de resposta pendentes.
211 212 213 214 215 216 217 218 219 220 221 |
# Arquivo 'lib/mongoid/ documento.rb', linha 211 def _handle_callbacks_after_instanciation(execute_callbacks) se execute_callbacks apply_defaults rendimento auto se block_given? run_callbacks(:find) a menos que _find_callbacks.vazio? run_callbacks(:initialize) a menos que _initialize_callbacks.vazio? mais rendimento auto se block_given? auto.pending_callbacks += %i[ apply_defaults find inicializar ] end end |
#as_document ➤ Hash
Retorne um hash de toda a hierarquia do documento a partir deste documento e abaixo. Usado quando os atributos são necessários para tudo e não apenas para o documento atual.
134 135 136 |
# Arquivo 'lib/mongoid/ documento.rb', linha 134 def as_document BSON::Documento.Novo(as_attributes) end |
#as_json(options = nil) ⇒ Hash
Rails 6 altera o valor de retorno de as_json para tipos não primitivos, como BSON::ObjectId. Em Rails <= 5, as_json retornou estes como instâncias da classe. Em Rails 6, estes são retornados serializados para tipos primitivos (por exemplo '$oid'=>' 5bcfc40bde340b37feda98e9'). Consulte github.com/rails/rails/commit/2e5cb980a448e7f4ab00df6e9ad4c1cc456616aa para mais informações.
Chama #as_json no documento com opções adicionais específicas do Mongoid.
156 157 158 159 160 161 162 163 |
# Arquivo 'lib/mongoid/ documento.rb', linha 156 def as_json( = nada) rv = super se && [:compac] Mongoid::Avisos.write_as_json_compact_deprecated rv = rv.compactar end rv end |
#torna -se (klass) ➤ Documento
Retorna uma instância da classe especificada com os atributos, erros e documentos incorporados do documento atual.
176 177 178 179 180 181 182 183 |
# Arquivo 'lib/mongoid/ documento.rb', linha 176 def torna-se(classe) mongoid_document_check!(classe) tornou-se = classe.Novo(clone_document) tornou-se.internal_state = internal_state tornou-se end |
#freeze ⇒ Document
Congela os atributos internos do documento.
49 50 51 |
# Arquivo 'lib/mongoid/ documento.rb', linha 49 def congelar as_attributes.congelar e a auto end |
#frozen? ⇒ true | false
Verifica se o documento está congelado
59 60 61 |
# Arquivo 'lib/mongoid/ documento.rb', linha 59 def congelado? attributes.congelado? end |
#hash ➤ inteiro
Delega à identidade para permitir que dois registros da mesma identidade funcionem com algo como:
[ Person.find(1), Person.find(2), Person.find(3) ] &
[ Person.find(1), Person.find(4) ] # => [ Person.find(1) ]
73 74 75 |
# Arquivo 'lib/mongoid/ documento.rb', linha 73 def hash identidade.hash end |
#identity ➤ Array
Um documento é identificado absolutamente por sua classe e ID do banco de dados:
Person.first.identity #=> [Pessoa, BSON::ObjectId(' 4f775130a04745933a000003')]
85 86 87 |
# Arquivo 'lib/mongoid/ documento.rb', linha 85 def identidade [ auto.classe, _id ] end |
#initialize(attrs = nil, &block) ➤ Documento
Instancie um novo Document
, definindo os atributos do documento, se fornecidos. Se nenhum atributo for fornecido, eles serão inicializados com um Hash
vazio.
Se uma chave primária for definida, o ID do documento será definido para essa chave, caso contrário, será definido para uma nova string BSON::ObjectId
.
102 103 104 |
# Arquivo 'lib/mongoid/ documento.rb', linha 102 def inicializar(attrs = nada, &noum: bloco ; verb: bloquear) construct_document(attrs, &noum: bloco ; verb: bloquear) end |
#internal_state=(estado) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Define o estado interno deste documento. Usado somente por #becomes para ajudar a inicializar um documento redefinido.
191 192 193 194 195 196 197 198 199 200 201 |
# Arquivo 'lib/mongoid/ documento.rb', linha 191 def internal_state=(state) auto._id = state[:id] @changed_attributes = state[:changed_attributes] @errors = ActiveModel::Errors.Novo(auto).toque { |e| e.copie!(state[:errors]) } @new_record = state[:new_record] @destroyed = state[:destroyed] update_discriminator(state[:discriminator_key_was]) (state[:new_record]) end |
#model_name ➤ string
Retorne o nome do modelo do documento.
112 113 114 |
# Arquivo 'lib/mongoid/ documento.rb', linha 112 def model_name auto.classe.model_name end |
#to_key ➤ string
Retorne o valor chave do documento.
122 123 124 |
# Arquivo 'lib/mongoid/ documento.rb', linha 122 def to_key (persistiu? || destruído?) ? [ _id.to_s ] : nada end |