sql >> Base de Datos >  >> NoSQL >> MongoDB

Cómo actualizar documentos existentes en MongoDB

MongoDB fue desarrollado por primera vez en 2007 por Dwight Merriman y Eliot Horowitz cuando experimentaron problemas de escalabilidad con bases de datos relacionales mientras desarrollaban aplicaciones web empresariales en su empresa, conocida como DoubleClick. Según uno de los desarrolladores, su nombre deriva de la palabra descomunal para apoyar la idea de procesar una gran cantidad de datos.

La base de datos se convirtió en un proyecto de código abierto en 2009 mientras la empresa ofrecía servicios de soporte comercial. Muchas empresas adoptaron MongoDB debido a sus características únicas. Una de estas empresas fue el periódico The New York Times, y utilizaron esta base de datos para crear una aplicación basada en la web para enviar las fotos. En el año 2013, DoubleClick cambió oficialmente el nombre de MongoDB Inc.

Componentes MongoDB

Los componentes principales de MongoDB y su uso incluyen:

  • Colecciones: Sus contrapartes RDBMS son tablas. Son un conjunto de documentos MongoDB
  • Documento – Su contraparte RDBMS es Row. Esta es una colección de datos almacenados en formato BSON
  • Campo: Este es un elemento único en un documento MongoDB que contiene valores como campos y pares de valores.

Almacenamiento basado en documentos

Un documento es una estructura de datos con pares de nombre y valor como JSON, y es fácil mapear cualquier objeto personalizado de cualquier lenguaje de programación con un documento MongoDB. Por ejemplo, un estudiante el objeto tiene atributos como name, studentid, y temas donde los sujetos son una Lista. Un documento para Estudiantes en MongoDB se verá así:

{
Name: "Michael",
Studentid: 1
Subjects: ["Mathematics, English, Geography"]}

Notará que los documentos son representaciones JSON de objetos personalizados de la representación anterior. Además, se evitan JOINS excesivos guardando datos en forma de matrices y documentos (incrustados) dentro de un documento.

Actualización de documentos en MongoDB

MongoDB proporciona una actualización () comando utilizado para actualizar los documentos de una colección. Los parámetros básicos en el comando son una condición por la cual un documento debe actualizarse y la modificación que debe realizarse. Un usuario puede agregar criterios a la declaración de actualización para actualizar solo los documentos seleccionados. El siguiente ejemplo muestra cómo se actualiza un solo valor en un documento:

  • Ingrese el updateOne comando.
  • Elija la condición que se utilizará para decidir qué documento se actualiza. Por ejemplo, actualizaremos un documento con el autor y el artículo.
  • Usar el conjunto para modificar el Nombre del campo, elija el nombre del campo que desea cambiar, luego ingrese el nuevo valor como se muestra a continuación:
db.fossdb.updateOne(
{ item: "article" },
{
$set: { "foss": "fosslinux", author: "Abraham" },
$currentDate: { lastModified: true }
}
)

Salida:

Nota: asegúrese de seleccionar la base de datos correcta usando el comando "usar". Por ejemplo, estoy usando "fossdb"; por lo tanto, para elegir la base de datos adecuada, ejecutaré el siguiente comando:

use fossdb

Salida:

El resultado mostrará que un registro coincidió con la condición y, por lo tanto, se modificó el valor del campo relevante en el documento.

Para actualizar documentos masivos simultáneamente en MongoDB, un usuario deberá usar una opción múltiple ya que, de manera predeterminada, solo se modifica un documento a la vez. El siguiente código muestra cómo un usuario puede actualizar muchos documentos al mismo tiempo:

  • Primero encontraremos el documento cuyo autor es "Abraham" y cambiaremos el nombre del autor de "Abraham" a "Masai". Entonces emitiremos el updateMany comando.
  • Luego, elija la condición para decidir qué documento se modificará. Como se mencionó anteriormente, usaremos el documento con el nombre "Autor".
  • Elija los nombres de campo que desea actualizar, luego ingrese sus nuevos valores en consecuencia.
db.fossdb.updateMany(
{ "articles": { $lt: 50 } },
{
$set: { "foss": "fosslinux", authors: "Masai" },
$currentDate: { lastModified: true }
}
)

Salida:

Después de ejecutar con éxito este comando, el resultado muestra que un registro coincidió con la condición y, por lo tanto, se modificó el campo relevante.

Por qué los usuarios deberían optar por MongoDB

Las siguientes son razones por las que los usuarios deberían comenzar a usar MongoDB:

Orientado a documentos

Dado que esta base de datos es una base de datos de tipo NoSQL, los datos se almacenan en documentos en lugar de tener datos en un formato de tipo relacional. Esto hace que esta base de datos sea muy flexible y adaptable a situaciones y requisitos del mundo real.

Consultas ad hoc

MongoDB admite búsquedas por campo, consultas y búsquedas de expresiones regulares; por lo tanto, se pueden realizar consultas para recuperar campos específicos dentro de los documentos.

Indización

Los índices en MongoDB se crean para mejorar el rendimiento de las búsquedas dentro de la base de datos.

Equilibrio de carga

MongoDB utiliza la fragmentación para escalar horizontalmente mediante la división de datos en varias instancias de MongoDB.

Replicación

Esta base de datos proporciona alta disponibilidad con conjuntos de réplicas. Cada conjunto de réplicas consta de dos o más instancias de MongoDB. Un miembro del conjunto de réplicas puede actuar en el rol de réplica principal o secundaria en cualquier momento. La réplica principal es el servidor central que interactúa con el cliente y realiza todas las operaciones de lectura/escritura. Por el contrario, la réplica secundaria mantiene una copia de la réplica principal utilizando datos de replicación integrados.

Modelado de datos en MongoDB

De la discusión anterior, los datos en Mongo DB tienen un esquema flexible. Las colecciones de MongoDB no imponen la estructura del documento, a diferencia de las bases de datos SQL, donde un usuario debe declarar el esquema de una tabla antes de insertar datos. Este tipo de flexibilidad es lo que hace que MongoDB sea tan poderoso.

Al modelar datos en MongoDB, los usuarios deben tener en cuenta lo siguiente:

  • Patrones de recuperación de datos – en caso de un uso intensivo de consultas, los usuarios deben considerar el uso de índices en sus modelos de datos para mejorar la eficiencia de las consultas.
  • Necesidades de la aplicación – un usuario debe observar las necesidades comerciales de la aplicación y ver qué datos y tipos de datos se necesitan para la aplicación.
  • ¿La base de datos se modifica con frecuencia? – los usuarios tendrán que reconsiderar el uso de índices o incorporar fragmentación si es necesario en su diseño de modelado de datos para mejorar la eficiencia de su entorno MongoDB general.

Conclusión

Este artículo ha dado un breve análisis de MongoDB, una base de datos viral en el mercado actual. Además, se ha explicado cómo actualizar documentos existentes en MongoDB. Esperamos que este artículo lo ayude a comprender mejor MongoDB. En caso de cualquier problema, comuníquese con nosotros a través de la sección de comentarios y nos pondremos en contacto con usted.