Si es un usuario frecuente de otras bases de datos como Oracle y SQL, debe tener alguna idea sobre la sintaxis de consultas que se utiliza para actualizar los registros ya insertados en esas bases de datos. MongoDB también utiliza algunas consultas de actualización, pero estas consultas son bastante diferentes en comparación con las otras bases de datos. En MongoDB, las instrucciones de actualización utilizan el operador "$ set" de MongoDB para reemplazar especialmente el valor anterior con un nuevo valor o para agregar un nuevo campo a un solo registro. Esta guía le ayuda a usar todas esas consultas de funciones "Insertar" para actualizar un solo campo o múltiples campos de un registro usando el operador "$ set".
Ejemplo 1:
Al presentar la primera ilustración de MongoDB, cubrimos el uso del operador "$ set" para actualizar los registros simples en una base de datos. Para esto, intentamos la función "Insert ()" de MongoDB para agregar un solo registro de tres campos de datos.
Prueba> DB.nuevo.insertar ("id": 01, "nombre": "pita", "edad": 30)
Después de agregar el primer registro único, usamos la función find () junto con la función "foreach ()" para mostrar el valor insertado.
Prueba> DB.nuevo.encontrar().foreach (printjson)
Ahora, usamos la función UpdateOne () para actualizar el campo "Nombre" del registro insertado usando el operador "$ set". Asegúrese de mencionar el campo "ID" como un campo único, especialmente cuando tiene más de 1 registro en una base de datos para distinguir.
Prueba> DB.nuevo.updateOne ("id": 01, $ set: "nombre": "Peter")
Después de actualizar un registro utilizando el operador "$ set", probamos la función "find ()" una vez más en el shell MongoDB para ver si la actualización funcionó o no.
Prueba> DB.nuevo.encontrar().foreach (printjson)
Resulta que la actualización es realizada con éxito por el operador "Conjunto" de MongoDB.
Ejemplo 2:
Después de pasar por las simples ilustraciones de actualizar los registros de MongoDB a través del operador $ set, avanzamos un paso adelante. En esta ilustración, actualizamos los registros de matriz anidados (documentos) de cualquier base de datos que reside en MongoDB. Para esto, nuestra base de datos debe tener al menos uno de esos registros que contenga una matriz o registro de tipo documento en ella. Por lo tanto, el siguiente comando "InsertOne ()" de MongoDB se utiliza en el shell para agregar un nuevo registro a una base de datos "Prueba". Este registro contiene un total de 3 campos de datos. El campo "Datos" es un tipo de documento y el campo "EDU" es una matriz.
Prueba> DB.prueba.insertone (id: 01, datos: nombre: "Johny", edad: 34, edu: ["matric", "fsc"])
Después de agregar un registro, agregamos otro registro en la base de datos "Prueba" con el mismo método en la consulta de función InsertOne (). Ambos registros se agregan con éxito.
Prueba> DB.prueba.InsertOne (id: 02, datos: nombre: "Elsa", edad: 29, edu: ["fsc", "bs"])
Ahora que se agregan estos registros, verifiquemos en nuestro MongoDB usando la función find () junto con la función foreach (), tomando el "printjson" como un argumento para presentar los datos de la base de datos en formato JSON. Se muestran dos registros que contienen matriz y documento.
Prueba> DB.prueba.encontrar().foreach (printjson)
Ejemplo 3:
Ahora, actualizamos el segundo registro de la base de datos "Prueba" que se agrega primero a través del operador "Conjunto" de MongoDB. Por lo tanto, la función de "actualización" se descarta en la CLI MongoDB para este propósito. El operador "$ set" se usa aquí para actualizar el campo "fecha" de este registro. Para actualizar el campo en particular, asegúrese de actualizar todos sus campos infantiles porque si omite cualquier campo infantil, lo elimina como una actualización y no lo volverá a mostrar. Por lo tanto, actualizamos los campos de "nombre" y "edad" del documento "datos" del segundo registro.
Prueba> DB.prueba.Update (id: 2, $ set: data: name: "maya", edad: 33)
Después de probar la consulta de comando Find () en el shell MongoDB para mostrar el registro de una base de datos, obtenemos el registro actualizado establecido por el operador "$ set" a cambio que se acaba de usar anteriormente. El nombre "Elsa" es reemplazado por "maya" y la edad "29" se reemplaza por "33". Puede ver en la salida que el primer registro no se toca durante la actualización.
Prueba> DB.prueba.encontrar().foreach (printjson)
Dentro de la demostración anterior, solo actualizamos el campo anidado de tipo documento del registro de la base de datos "Prueba" a través del operador "$ set". Ahora, actualizamos el campo de tipo matriz de la misma base de datos utilizando el operador "$ set" de MongoDB. Usando de la misma manera, utilizamos la función "updateOne" en lugar de la función "actualización" para actualizar un solo registro, el primer registro de la base de datos "Prueba". Mencionamos el campo que se utiliza como "ID" para un registro y probamos el operador "$ SET" para actualizar el campo de tipo de documento "Datos" y el campo de matriz "EDU" a la vez a la vez. Después de la ejecución de la siguiente consulta, se actualiza el registro.
Prueba> DB.prueba.updateOne (id: 1, $ set: data: name: "Paul", Age: 30, edu: ["fa", "PhD"])
Después de esta actualización del operador "$ set", usamos la misma función find () con la función foreach () para mostrar el registro actualizado en nuestro shell MongoDB en el formato JSON. Este 1calle El registro se actualiza perfectamente sin ningún error según la salida.
Prueba> DB.prueba.encontrar().foreach (printjson)
Hay otra forma única de actualizar un registro de base de datos de MongoDB. Esta forma incluye el uso de un carácter de "punto" con el nombre del campo y su campo anidado para actualizar un campo infantil en particular dentro del campo principal. El operador "$ set" se utiliza para actualizar el valor del campo "edad" del campo principal "datos" del 1calle récord, de 30 a 28. Para esto, probamos el formato específico de la consulta updateOne () en el operador "$ set" como "datos.Edad ": 28.
Prueba> DB.prueba.updateOne (id: 1, $ set: "datos.Edad ": 28)
Después de la actualización de un registro utilizando el método anterior, mostramos el registro actualizado.
Prueba> DB.prueba.encontrar().foreach (printjson)
Para actualizar una matriz dentro de un registro, debe mencionar el número de índice de un registro particular después del carácter "DOT" junto con el valor que se separará ":" Usando el operador "SET".
Prueba> DB.prueba.Update (id: 1, $ set: "datos.Edad ": 33," Edu.1 ":" PhD ")
La actualización se refleja en la base de datos "Prueba". Encontramos el nuevo valor en la columna.
Prueba> DB.prueba.encontrar().foreach (printjson)
Conclusión
Este artículo lo ayuda a usar el operador "$ set" mientras trabaja en el entorno de MongoDB. Explica el uso del operador "$ set" en la instrucción de actualización de MongoDB dentro de su introducción. Después de eso, se descartan tres ejemplos diferentes pero muy fáciles de implementar para actualizar un campo simple de un valor, actualizar un campo de valor múltiple y un campo con valores de tipo matriz en una base de datos MongoDB utilizando el "$ set" operador.