Docs Menu
Docs Home
/ /

Persistir datos de queries

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.

Esta sección describe métodos que puede encadenar a sus consultas para crear, actualizar y eliminar datos en sus colecciones de MongoDB.

Puede utilizar los siguientes métodos para crear nuevos documentos a partir de sus criterios de consulta:

  • create: Guarda una instancia de modelo en MongoDB

    • Ejemplo: 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ón

    • Ejemplo: Band.where(name: 'Daft Punk').create!

  • build: Crea una instancia de modelo no guardada

    • Ejemplo: Band.where(name: 'Daft Punk').build

  • new: Crea una instancia de modelo no guardada

    • Ejemplo: Band.where(name: 'Daft Punk').new

Puedes utilizar los siguientes métodos para actualizar documentos basados en tus criterios de query:

  • update:Actualiza los atributos del primer documento coincidente

    • Ejemplo: Band.where(name: 'Sundown').update(label: 'ABC Records')

  • update_all:Actualiza los atributos de todos los documentos coincidentes

    • Ejemplo: Band.where(country: 'Canada').update_all(label: 'ABC Records')

  • add_to_set: Agrega un valor a una matriz especificada en todos los documentos coincidentes

    • Ejemplo: Band.where(name: 'Sun Down').add_to_set(label: 'ABC Records')

  • bit:Realiza una actualización bit a bit de un campo

    • Ejemplo: Band.where(name: 'Sun Down').bit(likes: { and: 14, or: 4 })

  • inc:Incrementa el valor de un campo

    • Ejemplo: Band.where(name: 'Sun Down').inc(likes: 14)

  • pop: Elimina el primer o el último elemento de un campo de matriz

    • Ejemplo: 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 matriz

    • Ejemplo: Band.where(name: 'Sun Down').pull(members: 'Jonah Larsen')

  • pull_all: Elimina todas las instancias de los valores especificados de un campo de matriz

    • Ejemplo: Band.where(name: 'Sun Down').pull_all(:members, [ 'Jonah Larsen', 'Dan Jones' ])

  • push:Agrega un valor especificado a un campo de matriz

    • Ejemplo: Band.where(name: 'Sun Down').push(members: 'Jonah Larsen')

  • push_all:Agrega un valor especificado utilizando el operador $each en un campo de matriz

    • Ejemplo: Band.where(name: 'Sun Down').push_all(members: [ 'Jonah Larsen', 'Dan Jones' ])

  • rename: Cambia el nombre de un campo en todos los documentos coincidentes

    • Ejemplo: Band.where(name: 'Sun Down').rename(name: :title)

  • set: Establece un nuevo valor para un campo específico en todos los documentos coincidentes

    • Ejemplo: Band.where(name: 'Sun Down').set(likes: 10000)

  • unset: Elimina un campo particular en todos los documentos coincidentes

    • Ejemplo: Band.where(name: 'Sun Down').unset(:likes)

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

Para aprender a personalizar su objetivo de persistencia, consulte la guía de configuración de persistencia.

Volver

Alcance

En esta página