Módulo: Mongoide::Persistente::Upsertable
- Incluido en:
- Mongoid::Persistable
- Definido en:
- lib/mongoid/persistable/upsertable.rb
Overview
Define el comportamiento de las operaciones de persistencia que insertan documentos.
Colapso del resumen del método de instancia
-
#upsert(opciones = {}) ⇒ verdadero
Realizar una inserción y actualización del documento.
Detalles del método de instancia
#upsert(opciones = {}) ⇒ verdadero
Realizar una inserción y actualización del documento. Si el documento no existe en la base de datos, Mongo insertará uno nuevo; de lo contrario, los campos se sobrescribirán con los nuevos valores del documento existente.
Si la opción de reemplazo es verdadera, se eliminarán los atributos no especificados; si es falsa, se conservarán. La opción de reemplazo tiene el valor predeterminado falso en Mongoid 9.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# Archivo 'lib/mongoid/persistable/upsertable.rb', línea 36 def inserción( = {}) prepare_upsert() hacer Si [:reemplazar] Si [:set_on_insert] propagar ArgumentError, "no se puede especificar :set_on_insert con `replace: true`" end Colección.buscar(selector atómico).reemplazar_uno( como_atributos, inserción: true, sesión: _sesión) else attrs = { "$set" => como_atributos } attrs["$setOnInsert"] = [:set_on_insert] Si [:set_on_insert] Colección.buscar(selector atómico).update_one( attrs, inserción: true, sesión: _sesión) end end end |