Cómo usar la consulta Upsert en MongoDB

Cómo usar la consulta Upsert en MongoDB
Las bases de datos se clasifican ampliamente en tipos SQL y NoSQL. MongoDB cae en la última categoría y admite un lenguaje de consulta fuerte para procesar datos. La consulta Upsert en MongoDB se utiliza para ayudar a la actualización y reemplazar los métodos. Crea un nuevo documento si la condición no se cumple con los métodos de actualización/reemplazo. Algunos métodos extendidos de una actualización también son compatibles con upsert consulta e incluyen findandModify, updateOne (), reemplazara ().

Este artículo explicará el uso de la consulta de Upsert de niveles básicos a avanzados. El uso avanzado de esta consulta se explicará aplicando Upsert con varios métodos.

Cómo funciona la consulta Upsert en MongoDB

La opción Upsert tiene la siguiente sintaxis:

Upsert:

El valor booleano puede ser verdadero Falso. Por defecto, el Upsert tiene un FALSO valor.

Cómo usar la consulta Upsert con el método de actualización

Esta sección explica la consulta Upsert con múltiples comandos. Hagamos primero el método de actualización. ¿Cómo funciona la actualización en una condición en la que el documento que queremos coincidir no existe??

La colección del personal contiene los siguientes documentos:

> DB.personal.encontrar().bonito()

El comando a continuación intenta actualizar un documento (_id: 3) que no existe, por lo que la consulta de actualización no upsert ni actualizar cualquier documento.

> DB.personal.Actualización (_ id: 3, nombre: "Alen")

Ahora, agregemos un upsert opción y establecer su valor en verdadero en la misma condición que explicamos anteriormente. El comando mencionado a continuación intenta actualizar un documento que coincida con el nombre: "Sam"Campo, pero el documento no existe.

Se observa a partir de la salida que el número de valores de documentos subsertados es "1".

> DB.personal.Actualización (nombre: "Sam", Desig: "Team-Lead", Upsert: true)

Para verificar esto, revisemos los documentos adentro "personal"Colección utilizando el siguiente comando:

> DB.personal.encontrar().bonito()

Nota: El método bonito () se usa para obtener la salida en un formato más claro.

Cómo usar la consulta Upsert con el método de UpdateOne

La opción Upsert se puede usar con el método UpdateOne para insertar un documento si la coincidencia de la condición no tiene éxito. El "personal"La colección contiene tres documentos, y queremos agregar un documento con (_id: 3) eso no existe. Para hacer upsert funcional, debe establecer su valor en verdadero, el escenario anterior se ejecuta emitiendo el comando mencionado a continuación:

> DB.personal.updateOne (_ id: 3, $ set: name: "sam", desig: "team-lead", upsert: true)

En el comando anterior, hemos usado "_id: 3"Para que coincida con un documento, por lo tanto, al documento subsert se ha asignado una identificación única"_id: 3". Además, puede verificar el upsert acción obteniendo el contenido de personal recopilación:

> DB.personal.encontrar().bonito()

Cómo usar la consulta Upsert con el método reemplazara

El método reemplazara reemplaza los valores de campo si la coincidencia es exitosa. Y si la coincidencia no es exitosa, Upsert se puede usar para agregar un nuevo documento.

En el comando indicado a continuación, reemplazara El comando intenta reemplazar el documento que tiene campo "Nombre: Tom“(Que en realidad no existe). El valor de Upsert es "verdadero", Por lo que agregará un nuevo documento con una ID única predeterminada que contiene campo"Nombre: Jobes" y "Desig: autor":

> DB.personal.reemplazara (nombre: "Tom", nombre: "Jobes", Desig: "Autor", Upsert: True)

Cómo usar Upsert con el método FindandModify

El findandModify () modifica el documento y actúa casi lo mismo que el actualizar() método, pero findandModify () modifica solo un documento que coincide primero, mientras que el actualizar() Método actualiza todos los documentos coincidentes.

El comando escrito a continuación muestra el uso del Uspert con el método findandModify (). Como el findandModify () no coincide con ningún documento, por lo tanto, entra un nuevo documento:

El "consulta"La palabra clave utilizada en el comando intenta coincidir"_id: 5"E intenta actualizar el"numer"Campo por valor"15":

> DB.personal.findandModify (Query: _id: 5, Update: $ inc: num: 15, Upsert: true)

La consulta regresa "nulo"Porque no hemos usado Sort en el comando y tampoco hay coincidencias de documentos. Sin embargo, si miras el contenido del "personal"Colección, encontrará el documento recién elevado con valor de identificación"_id: 5":

> DB.personal.encontrar().bonito()

Conclusión

MongoDB tiene una larga lista de comandos y consultas para actualizar o reemplazar datos dentro de documentos de una colección. Junto con estos comandos, la consulta de Upsert ayuda a estos comandos de actualización/reemplazo para insertar un nuevo documento si los comandos de actualización/reemplazo no coinciden con cualquier documento. En esta guía de la serie MongoDB, hemos proporcionado el uso de una consulta de Upsert con varios comandos en MongoDB. Después de analizar el mecanismo de trabajo de Upsert, se concluye que UPSERT actúa como un método de inserción para varios métodos de actualización/eliminación en MongoDB.