Módulo: Mongoid::Document

Ampliado por:
ActiveSupport::Concern
Incluye:
Componibles, Tocables::Métodos de Instancia
Incluido en:
GlobalDiscriminatorKeyAssignment::CampoHostInválido
Definido en:
lib/mongoid/document.rb

Overview

Este es el módulo base para todos los objetos de dominio que deben persistirse en la base de datos como documentos.

Definido bajo Namespace

Modules: ClassMethods

Colapso delresumen constante

illegal_key =

Expresión regular para la coincidencia de claves BSON ilegales. Tenga en cuenta que bson 4.1 tiene la constante BSON::String::ILLEGAL_KEY, que debe usarse en su lugar. Cuando se publique el controlador Ruby 2.3.0 y Mongoid se actualice para requerir ≥ 2.3.0, se podrá usar la constante BSON.

/(\A[$])|(\.)/.freeze

Constantes incluidas de Composable

Composable::MÓDULOS, Composable::NOMBRES_DE_MÉTODOS_RESERVADOS

Constantes incluidas en Interceptable

Interceptable::CALLBACKS

Constantes incluidas desde Asociación

Association::MACRO_MAPPING

Constantes incluidas desde Asociación::Dependiente

Asociación::Dependiendo::ESTRATEGIAS

Constantes incluidas desde Perseverante

Persistable::LIST_OPERATIONS

Constantes incluidas de Fields

Campos::Booleano, Campos::IDS, Campos::CLASES_BSON_INVÁLIDAS, Campos::SimboloString, Campos::TRANSLATIONS_SFX, Campos::TYPE_MAPPINGS

Constantes incluidas de Atomic

Atomic::UPDATES

Resumen de atributos de la instancia colapsar

Atributos incluidos de Stateful

#destruido, #marcado_para_destruir, #anteriormente_nuevo_registro

Atributos incluidos de Asociación

#_associación

Atributos incluidos desde Atributos

#atributos

Atributos incluidos de Clients::StorageOptions

#remembered_storage_options

Resumen del método de instancia colapsar

Métodos incluidos en Touchable::InstanceMethods

#_borrar_actualizaciones_táctiles, #_recopilar_actualizaciones_táctiles, #_ejecutar_devoluciones_de_llamadas_táctiles_desde_la_raíz, #_padre_tocable_?, #suprimir_devoluciones_de_llamadas_táctiles, #toque, #devoluciones_de_llamadas_táctiles_suprimidas?

Métodos incluidos en Composable

prohibited_methods

Métodos incluidos de Equality

#, #==, #eql?

Métodos incluidos en Copyable

#clon

Métodos incluidos de Interceptable

#_mongoid_run_child_after_callbacks, #_mongoid_run_child_before_callbacks, #_mongoid_run_child_callbacks, #_mongoid_run_child_callbacks_with_around, #_mongoid_run_child_callbacks_without_around, #callback_executable?, #in_callback_state?, #pending_callbacks, #pending_callbacks=, #run_after_callbacks, #run_before_callbacks, #run_callbacks, #run_pending_callbacks

Métodos incluidos de Validatable

#begin_validate, #exit_validate, #realizando_validaciones?, #leer_atributo_para_validación, #¿válido?, #validado?, #validado, #validando, #validando_con_consulta?

Métodos incluidos de Traversable

__redefine, #_children, #_descendants, #_parent, #_parent=, #_reset_memoized_descendants!, #_root, #_root?, #collect_children, #collect_descendants, #flag_descendants_persisted, #hereditary?, #parentize, #remove_child, #reset_persisted_descendants

Métodos incluidos en Cacheable

#clave_de_caché

Métodos incluidos de Stateful

#destroyed?, #flagged_for_destroy?, #new_record=, #new_record?, #persisted?, #previously_new_record?, #previously_persisted?, #pushable?, #readonly!, #readonly?, #settable?, #updateable?

Métodos incluidos de Shardable

#shard_key_field_value, #shard_key_fields, #shard_key_selector, #shard_key_selector_in_db

Métodos incluidos de Serializable

#serializable_hash

Métodos incluidos en Seleccionable

#selector_atómico

Métodos incluidos de Recargable

#reload

Métodos incluidos de Asociación

#nombre_de_asociación, #¿incrustado?, #¿incrustado_muchos?, #¿incrustado_uno?, #¿referenciado_muchos?, #¿referenciado_uno?, #recargar_relaciones

Métodos incluidos de Asociación::Reflexiones

#reflect_on_all_association, #reflect_on_association

Métodos incluidos de Association::Macros

#asociaciones

Métodos incluidos de Association::Depending

#aplicar_destruir_dependencias!, definir_dependencia!, ¡validar!

Métodos incluidos de Association::Accessors

#__compilar__, #create_relation, #reset_relation_criteria, #set_relation

Métodos incluidos en Association::Referenced::Syncable

#_syncable?, #_synced, #_synced?, #remove_inverse_keys, #update_inverse_keys

Métodos incluidos de Association::Referenced::CounterCache

define_callbacks!, #reset_counters

Métodos incluidos en Asociación::Referenciado::AutoGuardar

#__autosaving__, #autosaved?, #changed_for_autosave?, define_autosave!

Métodos incluidos de Persistable

#atomically, #fail_due_to_callback!, #fail_due_to_validation!

Métodos incluidos desde Persistable::Unsettable

#deshacer

Métodos incluidos de Persistable::Upsertable

#upsert

Métodos incluidos de Persistable::Updatable

#update, #update!, #update_attribute

Métodos incluidos en Persistable::Settable

#set

Métodos incluidos en Persistable::Savable

#save, #save!

Métodos incluidos de Persistable::Renamable

#rename

Métodos incluidos de Persistable::Pushable

#añadir_al_conjunto, #empujar

Métodos incluidos de Persistable::Pullable

#pull, #pull_all

Métodos incluidos desde Positional

#posicionalmente

Métodos incluidos de Persistable::Poppable

#pop

Métodos incluidos de Persistable::Multipliable

#mul

Métodos incluidos de Persistable::Minable

#set_min

Métodos incluidos de Persistable::Maxable

#set_max

Métodos incluidos de Persistable::Logical

#bit

Métodos incluidos desde Persistable::Incrementable

#inc

Métodos incluidos desde Persistable::Destroyable

#destruir, #destruir!

Métodos incluidos de Persistable::Deletable

borrar

Métodos incluidos de Persistable::Creatable

#insert

Métodos incluidos de Matchable

#_coincidencias?

Métodos incluidos de 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?, option, options, traverse_association_tree, #using_object_ids?, #validate_writable_field_name!

Métodos incluidos de Evolvable

#__evolve_object_id__

Métodos incluidos en 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 incluidos de Attributes::Readonly

#attribute_writable?

Métodos incluidos de Atributos::Procesamiento

#process_attributes

Métodos incluidos de clientes

borrar, clientes, predeterminado, desconectar, reconectar, establecer, con_nombre

Métodos incluidos de Clients::Sessions

incluido

Métodos incluidos de Clients::Options

#colección, #nombre_de_colección, #cliente_mongo, #contexto_de_persistencia, #contexto_de_persistencia?, #con

Métodos incluidos en Clients::StorageOptions

#remember_storage_options!, #storage_options

Métodos incluidos en Changeable

#atributo_antes_del_último_guardado, #cambiado, #¿cambiado?, #atributos_cambiados, #cambios, #hijos_cambiados?, #hijos_pueden_haber_cambiado!, #mover_cambios, #persistencia_posterior, #cambios_anteriores, #eliminar_cambio, #cambio_guardado_en_atributo, #cambio_guardado_en_atributo?, #establecedores, #¿se_guardará_el_cambio_en_atributo?

Métodos incluidos de 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, #flag_as_destroyed, #flagged_destroys, #process_flagged_destroys

Detalles de los atributos de instancia

#__selected_fieldsObjeto

Devuelve el valor del atributo __selected_fields.



30
31
32
# Archivo 'lib/mongoid/document.rb', línea 30

def __selected_fields
  @__campos_seleccionados
end

#new_recordObjeto (solo lectura)

Devuelve el valor del atributo new_record.



31
32
33
# Archivo 'lib/mongoid/document.rb', línea 31

def nuevo_registro
  @nuevo_registro
end

Detalles del método de instancia

#_handle_callbacks_after_instantiation(execute_callbacks) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Maneja la configuración y ejecución de devoluciones de llamadas, si se deben ejecutar; de lo contrario, agrega las devoluciones de llamadas apropiadas a la lista de devoluciones de llamadas pendientes.

Parámetros:

  • execute_callbacks (true | false)

    Si las devoluciones de llamada deben ejecutarse o no.



186
187
188
189
190
191
192
193
194
195
196
# Archivo 'lib/mongoid/document.rb', línea 186

def gestionar(execute_callbacks)
  si execute_callbacks
    aplicar_predeterminados
    rendimiento sí mismo si ¿block_given?
    run_callbacks(Buscar) a menos que _find_callbacks.¿vacío?
    run_callbacks(:inicializar) a menos que _initialize_callbacks.¿vacío?
  else
    rendimiento sí mismo si ¿block_given?
    sí mismo.pending_callbacks += %i[ aplicar_predeterminados buscar inicializar ]
  end
end

#as_documentHash

Devuelve un hash de toda la jerarquía de documentos desde este documento hacia abajo. Se utiliza cuando los atributos son necesarios para todo y no solo para el documento actual.

Ejemplos:

Obtén la jerarquía completa.

person.as_document

Devuelve:

  • (encriptada)

    Un hash de todos los atributos en la jerarquía.



136
137
138
# Archivo 'lib/mongoid/document.rb', línea 136

def as_document
  BSON::Documento.Nuevo(as_attributes)
end

#se convierte en(klass) ⇒ Documento

Devuelve una instancia de la clase especificada con los atributos, errores y documentos incrustados del documento actual.

Ejemplos:

Devuelve un documento de subclase como una instancia de superclase.

manager.becomes(Person)

Parámetros:

  • klass (Clase) -

    La clase a convertirse.

Devuelve:

  • (documento)

    Una instancia de la clase especificada.

Aumenta:

  • (ArgumentError)

    Si la clase no incluye Mongoid::Document



151
152
153
154
155
156
157
158
# Archivo 'lib/mongoid/document.rb', línea 151

def se convierte(klass)
  mongoid_document_check!(klass)

  se convirtió en = klass.Nuevo(clonar_documento)
  se convirtió en.internal_state = internal_state

  se convirtió en
end

#freezeDocument

Congela los atributos internos del documento.

Ejemplos:

Congelar el documento

document.freeze

Devuelve:



51
52
53
# Archivo 'lib/mongoid/document.rb', línea 51

def freeze
  as_attributes.freeze y  sí mismo
end

#frozen?true | false

Comprueba si el documento está congelado

Ejemplos:

Check if frozen

document.frozen?

Devuelve:

  • (true | false)

    Verdadero si está congelado, de lo contrario falso.



61
62
63
# Archivo 'lib/mongoid/document.rb', línea 61

def frozen?
  atributos.frozen?
end

#hashInteger

Se delega a la identidad para permitir que dos registros de la misma identidad trabajen con algo como:

[ Person.find(1), Person.find(2), Person.find(3) ] &
[ Person.find(1), Person.find(4) ] # => [ Person.find(1) ]

Ejemplos:

Consigue el hash.

document.hash

Devuelve:

  • (Número entero)

    El hash de la identidad del documento.



75
76
77
# Archivo 'lib/mongoid/document.rb', línea 75

def hash
  identidad.hash
end

#identidadarreglo

Un documento se identifica absolutamente por su clase y el id de base de datos:

Person.first.identity #=> [Person, BSON::ObjectId(‘4f775130a04745933a000003’)]

Ejemplos:

Obtener la identidad

document.identity

Devuelve:

  • (arreglo)

    Una matriz que contiene [document.class, document._id]



87
88
89
# Archivo 'lib/mongoid/document.rb', línea 87

def identidad
  [ sí mismo.clase, _id ]
end

#initialize(attrs = nil, &block) ⇒ Document

Crea una instancia de Document y establece los atributos del documento, si se proporcionan. Si no se proporcionan atributos, se inicializarán con un Hash vacío.

Si se define una llave primaria, el ID del documento se establecerá en esa llave; de lo contrario, se establecerá en una nueva BSON::ObjectId string.

Ejemplos:

Crea un nuevo documento.

Person.new(:title => 'Sir')

Parámetros:

  • attrs (Hash) (predeterminado: nulo)

    Los atributos para configurar el documento.

Devuelve:



104
105
106
# Archivo 'lib/mongoid/document.rb', línea 104

def inicializar(attrs = nulo, Ybloque)
  construct_document(attrs, Ybloque)
end

#internal_state=(estado) ⇒ Object

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Establece el estado interno de este documento. Solo lo usa #becomes para inicializar un documento reescrito.

Parámetros:

  • Estado (encriptada)

    El mapa de valores del estado interno.



166
167
168
169
170
171
172
173
174
175
176
# Archivo 'lib/mongoid/document.rb', línea 166

def internal_state=(Estado)
  sí mismo._id = Estado[:id]
  @changed_attributes = Estado[:atributos_cambiados]
  @errors = ActiveModel::Errors.Nuevo(sí mismo).tocar { |e| e.¡copiar!(Estado[:errors]) }
  @nuevo_registro = Estado[:nuevo_registro]
  @destroyed = Estado[:destruido]

  update_discriminator(Estado[La clave del discriminador era])

  Marca_estado_perseverado_para_documentos_incrustados(Estado[:nuevo_registro])
end

#nombre_del_modeloCadena

Devuelve el nombre del modelo del documento.

Ejemplos:

Devuelve el nombre del modelo.

document.model_name

Devuelve:

  • (string)

    El nombre del modelo.



114
115
116
# Archivo 'lib/mongoid/document.rb', línea 114

def model_name
  sí mismo.clase.model_name
end

#to_keyString

Devuelve el valor clave para el documento.

Ejemplos:

Devuelve la llave.

document.to_key

Devuelve:

  • (string)

    El id del documento o nil si es nuevo.



124
125
126
# Archivo 'lib/mongoid/document.rb', línea 124

def a_clave
  (¿persistió? || ¿destruido?) ? [ _id.to_s ] : nulo
end