Overview
En esta guía, puedes aprender cómo persistir datos fuera de tus consultas en Mongoid. Mongoid admite operaciones de persistencia fuera de los criterios de forma limitada, lo que te permite realizar de manera expresiva operaciones multidocumento de inserción, actualización y eliminación.
Para aprender más sobre cómo crear criterios de filtro, consulta el Especifica una query de documento guía.
Para obtener más información sobre cómo realizar operaciones CRUD, consulte la guía de operaciones CRUD.
Métodos de persistencia
Esta sección describe métodos que puedes encadenar a tus queries para crear, actualizar y borrar datos en tus colecciones de MongoDB.
Crear un documento
Puedes usar los siguientes métodos para crear nuevos documentos a partir de tus criterios de query:
create: Guarda una instancia de modelo en MongoDBEjemplo:
Band.where(name: 'Daft Punk').create
create!Guardado de una instancia de modelo en MongoDB o bien genera una excepción si ocurre un error de validación.Ejemplo:
Band.where(name: 'Daft Punk').create!
buildCrea una instancia de modelo no guardadaEjemplo:
Band.where(name: 'Daft Punk').build
newCrea una instancia de modelo no guardadaEjemplo:
Band.where(name: 'Daft Punk').new
Update Documents
Puedes utilizar los siguientes métodos para actualizar documentos basados en tus criterios de query:
updateActualiza los atributos del primer documento coincidenteEjemplo:
Band.where(name: 'Sundown').update(label: 'ABC Records')
update_allActualiza los atributos de todos los documentos coincidentesEjemplo:
Band.where(country: 'Canada').update_all(label: 'ABC Records')
add_to_set:: Añade un valor a un arreglo especificado en todos los documentos correspondientesEjemplo:
Band.where(name: 'Sun Down').add_to_set(label: 'ABC Records')
bitRealiza una actualización de bits de un campoEjemplo:
Band.where(name: 'Sun Down').bit(likes: { and: 14, or: 4 })
incIncrementa el valor de un campoEjemplo:
Band.where(name: 'Sun Down').inc(likes: 14)
popQuita el primer o el último elemento de un campo de arregloEjemplo:
Band.where(name: 'Sun Down').pop(members: -1)
pullElimina todas las instancias de un valor o valores que cumplan una condición especificada de un campo arreglo.Ejemplo:
Band.where(name: 'Sun Down').pull(members: 'Jonah Larsen')
pull_all: Elimina todas las instancias de los valores especificados de un campo de matrizEjemplo:
Band.where(name: 'Sun Down').pull_all(:members, [ 'Jonah Larsen', 'Dan Jones' ])
pushañade un valor específico a un campo de arregloEjemplo:
Band.where(name: 'Sun Down').push(members: 'Jonah Larsen')
push_all: Adjunta un valor específico utilizando el operador$eachen un campo de arregloEjemplo:
Band.where(name: 'Sun Down').push_all(members: [ 'Jonah Larsen', 'Dan Jones' ])
rename: Cambia el nombre de un campo en todos los documentos coincidentesEjemplo:
Band.where(name: 'Sun Down').rename(name: :title)
set: Establece un nuevo valor para un campo específico en todos los documentos coincidentesEjemplo:
Band.where(name: 'Sun Down').set(likes: 10000)
unset: Elimina un campo particular en todos los documentos coincidentesEjemplo:
Band.where(name: 'Sun Down').unset(:likes)
Delete Documents
Puedes utilizar los siguientes métodos para borrar documentos en base a tus criterios de query:
delete:Elimina todos los documentos coincidentes.Ejemplo:
Band.where(label: 'ABC Records').delete
destroy: Elimina todos los documentos coincidentes mientras ejecuta callbacks. Este método carga todos los documentos en la memoria.Ejemplo:
Band.where(label: 'ABC Records').destroy
Información Adicional
Para aprender cómo personalizar su objetivo de persistencia, consulte la guía de Configuración de persistencia.