Módulo: Mongoid::Persistable::Pushable
- Ampliado por:
- ActiveSupport::Concern
- Incluido en:
- Mongoid::Persistable
- Definido en:
- lib/mongoid/persistable/pushable.rb
Overview
Define el comportamiento de las operaciones $push y $addToSet.
Resumen del método de instancia colapsar
-
#add_to_set(agrega) ⇒ Documento
Añada los valores únicos a los arreglos sólo si el valor no existe ya en el arreglo.
-
#push(pushes) ⇒ Documento
Insertar un único valor o varios valores en matrices.
Detalles del método de instancia
#add_to_set(adds) ⇒ Documento
Añada los valores únicos a los arreglos sólo si el valor no existe ya en el arreglo.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# Archivo 'lib/mongoid/persistable/pushable.rb', línea 20 def Añadir a conjunto(agrega) preparar_operación_atómica hacer |ops| proceso_operaciones_atómicas(agrega) hacer |Campo, Valor| existente = enviar(Campo) || atributos[Campo] si existente.nil? atributos[Campo] = [] # Lee el valor de los atributos: # https://jira.mongodb.org/browse/MONGOID-4874 existente = atributos[Campo] end values = [ Valor ].nivelar(1) values.cada hacer |val| existente.push(val) a menos que existente.incluir?(val) end ops[atomic_attribute_name(Campo)] = { "$cada" => values } end { "$addToSet" => ops } end end |
#empujar(empujes) ⇒ Documento
Insertar un único valor o varios valores en matrices.
51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# Archivo 'lib/mongoid/persistable/pushable.rb', línea 51 def push(empuja) preparar_operación_atómica hacer |ops| proceso_operaciones_atómicas(empuja) hacer |Campo, Valor| existente = enviar(Campo) || begin atributos[Campo] ||= [] atributos[Campo] end values = [ Valor ].nivelar(1) values.cada{ |val| existente.push(val) } ops[atomic_attribute_name(Campo)] = { "$cada" => values } end { "$push" => ops } end end |