Overview
En esta guía, aprenderá a persistir datos de sus consultas en Mongoid. Mongoid admite operaciones de persistencia basadas en criterios con una capacidad limitada, lo que le permite realizar operaciones de inserción, actualización y eliminación de múltiples documentos de forma expresiva.
Para obtener más información sobre cómo crear criterios de filtro, consulte la Especifique una guía de consulta de documentos.
Para obtener más información sobre cómo realizar operaciones CRUD, consulta la guía Realiza operaciones de datos.
Métodos de persistencia
Esta sección describe métodos que puede encadenar a sus consultas para crear, actualizar y eliminar datos en sus colecciones de MongoDB.
Crear un documento
Puede utilizar los siguientes métodos para crear nuevos documentos a partir de sus criterios de consulta:
create: Guarda una instancia de modelo en MongoDBEjemplo:
Band.where(name: 'Daft Punk').create
create!: Guarda una instancia de modelo en MongoDB o genera una excepción si ocurre un error de validaciónEjemplo:
Band.where(name: 'Daft Punk').create!
build: Crea una instancia de modelo no guardadaEjemplo:
Band.where(name: 'Daft Punk').build
new: Crea 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:
update:Actualiza los atributos del primer documento coincidenteEjemplo:
Band.where(name: 'Sundown').update(label: 'ABC Records')
update_all:Actualiza los atributos de todos los documentos coincidentesEjemplo:
Band.where(country: 'Canada').update_all(label: 'ABC Records')
add_to_set: Agrega un valor a una matriz especificada en todos los documentos coincidentesEjemplo:
Band.where(name: 'Sun Down').add_to_set(label: 'ABC Records')
bit:Realiza una actualización bit a bit de un campoEjemplo:
Band.where(name: 'Sun Down').bit(likes: { and: 14, or: 4 })
inc:Incrementa el valor de un campoEjemplo:
Band.where(name: 'Sun Down').inc(likes: 14)
pop: Elimina el primer o el último elemento de un campo de matrizEjemplo:
Band.where(name: 'Sun Down').pop(members: -1)
pull: Elimina todas las instancias de un valor o valores que coinciden con una condición especificada de un campo de matrizEjemplo:
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' ])
push:Agrega un valor especificado a un campo de matrizEjemplo:
Band.where(name: 'Sun Down').push(members: 'Jonah Larsen')
push_all:Agrega un valor especificado utilizando el operador$eachen un campo de matrizEjemplo:
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
destroyElimina todos los documentos coincidentes mientras se ejecutan devoluciones de llamada. Este método carga todos los documentos en memoria.Ejemplo:
Band.where(label: 'ABC Records').destroy
Información Adicional
Para aprender a personalizar su objetivo de persistencia, consulte la guía de configuración de persistencia.