Módulo: Mongoid::Persistable::Pushable
- Ampliado por:
- ActiveSupport::Preocupación
- Incluido en:
- Mongoid::Persistable
- Definido en:
- lib/mongoid/persistable/pushable.rb
Overview
Define el comportamiento de las operaciones $push y $addToSet.
Colapso del resumen del método de instancia
-
#add_to_set(agrega) ⇒ Documento
Agregue los valores individuales a las matrices solo si el valor aún no existe en la matriz.
-
#push(empuja) ⇒ Documento
Insertar un único valor o varios valores en matrices.
Detalles del método de instancia
#add_to_set(agrega) ⇒ Documento
Agregue los valores individuales a las matrices solo si el valor aún no existe en la matriz.
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_al_conjunto(agrega) preparar_operación_atómica hacer |ops| operaciones atómicas del proceso(agrega) hacer |Campo, valor| existente = Enviar(Campo) || atributos[Campo] Si existente.nil? atributos[Campo] = [] # Leer el valor de los atributos: # https://jira.mongodb.org/browse/MONGOID-4874 existente = atributos[Campo] end values = [ valor ].aplanar(1) values.cada hacer |val| existente.Push(val) a no ser que existente.¿incluir?(val) end ops[nombre_del_atributo_atómico(Campo)] = { "$cada" => values } end { "$addToSet" => ops } end end |
#push(empuja) ⇒ 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| operaciones atómicas del proceso(empuja) hacer |Campo, valor| existente = Enviar(Campo) || begin atributos[Campo] ||= [] atributos[Campo] end values = [ valor ].aplanar(1) values.cada{ |val| existente.Push(val) } ops[nombre_del_atributo_atómico(Campo)] = { "$cada" => values } end { "$push" => ops } end end |