Cómo usar el método FindONDupdate en MongoDB

Cómo usar el método FindONDupdate en MongoDB
MongoDB admite múltiples funciones que se utilizan para procesar datos en bases de datos. En cualquier base de datos, el proceso de actualización de datos es inevitable y se realiza con frecuencia. El método FindOnEnDupdate se utiliza para actualizar un solo documento que coincida con la condición, y este método es una extensión del método de actualización central de MongoDB.

El findonEndupdate () El método devuelve el documento después de la actualización, mientras que el updateOne () El método de MongoDB también actualiza un documento, pero no devuelve ningún documento.

En este artículo, aprenderá a comprender y aplicar el FindOnEndupdate() Método de MongoDB para que coincida y actualice un solo documento.

Cómo funciona FindOnEnDupDate () en MongoDB

El mecanismo de trabajo de este método se basa en la sintaxis que se proporciona a continuación:

db.nombre de colección.findoneandupdate (filtre, actualización, opciones)

En la sintaxis anterior:

nombre de colección se refiere a la recopilación de una base de datos Mongo en la que reside el documento.

filtrar es una condición para que coincida con el documento.

actualizar contiene los campos y los valores asociados para actualizarse

Opciones son los parámetros para refinar el procesamiento de actualización. Por ejemplo, el "MaxtimemsLa opción se utiliza para limitar el tiempo para la ejecución de una consulta. Si el límite de tiempo especificado excede, la consulta no se ejecutará.

Cómo aplicar el método FindOnEnDupDate () en MongoDB

En esta sección, se brinda una guía detallada con la ayuda de varios ejemplos para usar el método FindONEanDupDate ():

Ejemplo 1: Actualización de un solo documento

Para este ejemplo, usaremos un "computadoras portátiles"La colección y el siguiente contenido reside en ella:

> DB.computadoras portátiles.encontrar().bonito()

Queremos agregar un "Estado" campo con el valor "disponible"A los documentos donde el"Unidades"El valor es mayor o igual al"50". El comando mencionado a continuación realizará la actualización mencionada anteriormente con la ayuda del findonEndupdate () método.

> DB.computadoras portátiles.findOnEnDupDate ("unidades": $ gte: 50, $ set: "status": "disponible")

Las siguientes observaciones se extraen de la salida anterior:

El findonEndupdate () El método devolvió el documento original (antes de la actualización).

Como hay dos documentos que tienen "Unidades"Valor mayor o igual a"50", pero el findonEndupdate () El método considera el primero que coincide con la condición.

Puede verificar la actualización utilizando el comando mencionado a continuación: y se nota que solo se agrega un documento con el campo "Estado".

> DB.computadoras portátiles.encontrar().bonito()

Ejemplo 2: devolver el documento actualizado

Por defecto, el método FindOnEnDupDate () devuelve el documento original. Puede obtener el documento actualizado a cambio configurando el "returnNewDocument"El valor de la opción para"verdadero".

El comando escrito a continuación agregará un nuevo campo "gato"Y su valor se establece en"Juego de azar". La actualización se realiza en el documento donde el "Precio"El valor es igual a 1750. Además, el "returnNewDocument"El valor es"verdadero". Entonces, debe devolver el documento actualizado.

> DB.computadoras portátiles.findOnEnDupDate ("precio": 1750, $ set: "cat": "juegos", returnNewDocument: true)

La salida muestra que el documento devuelto por el comando anterior es una versión actualizada.

Ejemplo 3: Uso del método FindOnEnDupDate () con opciones

Múltiples opciones son compatibles con este método, ya que hemos aplicado el "returnNewDocument"Opción en"Ejemplo 2". En esta sección, se explican varias otras opciones compatibles con este método.

Upsert: El valor del "upsert"La opción es falsa de forma predeterminada. Y si está configurado en "verdadero", el findonEndupdate () El método creará un nuevo documento si la condición no coincide con ningún documento.

Por ejemplo, el comando mencionado a continuación buscará los documentos donde el "Hacer"Value Matches"Extraterrestre" en el computadoras portátiles recopilación. Ya que ningún documento tiene un valor de campo "Extraterrestre", Por lo tanto, se creará un nuevo documento porque hemos establecido el "upsert"Valor como"verdadero".

Nota: También hemos usado el "returnNewDocumentOpción para obtener el documento actualizado a cambio.

> DB.computadoras portátiles.findOnEnDupDate ("Make": "Alien", $ Set: "Price": 1500, "Cat": "Gaming", Upsert: true, returnNewDocument: true)

Maxtimems: Esta opción se utiliza para limitar el tiempo (en milisegundos) para el comando de actualización. Si el límite de tiempo especificado excede, la consulta devolverá un error. Por ejemplo, hemos establecido el "Maxtimems"Opción para valorar"2"En el siguiente comando mencionado:

> DB.computadoras portátiles.findOnEnDupDate ("make": "alien", $ set: "unidades": 15, "precio": 1850, returnNewDocument: true, maxtimems: 2)

Nota: El valor del "MaxtimemsLa opción debe ser numérica (no flotación ni ningún otro tipo de datos).

Conclusión

El proceso de actualización tiene un papel clave en cualquier sistema de gestión de bases de datos porque los datos deben actualizarse con el tiempo en cualquier organización. Las extensiones de métodos de varias actualizaciones son utilizadas por MongoDB como findonEndupdate (). En esta publicación informativa, hemos proporcionado una breve aplicación de este método en MongoDB. El método objetivo coincide con el primer documento basado en la condición y luego actualiza los campos específicos de ese documento.