No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Base de Datos NoSQL

Curso de Base de Datos NoSQL

Adán Figueroa Jiménez

Adán Figueroa Jiménez

Cómo Eliminar Datos en MongoDB

9/17
Recursos

Aprender a realizar joins en MongoDB usando el operador lookup puede parecer complejo, pero con la práctica se convierte en una herramienta poderosa para manejar datos relacionados. Exploraremos cómo y por qué usar joins en MongoDB, además de mostrar un ejemplo práctico.

¿Cómo se usa el join en MongoDB?

MongoDB implementa los joins a través del operador lookup, permitiendo relacionar documentos de diferentes colecciones. Aunque en bases de datos NoSQL no es común usar joins como en SQL, MongoDB ofrece flexibilidad y patrones de diseño específicos para relaciones entre documentos.

¿Por qué existen joins en bases de datos NoSQL?

Aunque las bases de datos NoSQL, como MongoDB, priorizan la flexibilidad y la escalabilidad sobre la normalización estricta de SQL, hay escenarios donde los joins son útiles. MongoDB permite estas relaciones para aprovechar los beneficios de cada tecnología, combinándolas según las necesidades del proyecto.

¿Cómo afecta el rendimiento el uso de lookup?

Usar muchos lookups en una única agregación puede considerarse un antipatrón, afectando negativamente el rendimiento. Es crucial diseñar esquemas eficientes y usar lookups solo cuando sea necesario, siguiendo buenas prácticas y patrones de diseño para relaciones uno a uno, uno a muchos y muchos a muchos.

¿Cómo se implementa un lookup en MongoDB?

Vamos a crear un join usando lookup en MongoDB Compass, relacionando la colección Comments con Movies mediante el campo Movie ID.

  1. Seleccionar lookup en Compass:

    • Busca y selecciona Lookup.
    • Llena los campos necesarios:
      • From: Comments
      • Local Field: ID
      • Foreign Field: Movie ID
      • As: Comments
  2. Ejemplo práctico:

    • Con estos valores, MongoDB agregará un nuevo campo Comments en cada documento de la colección Movies.
    • Este campo será un array con todos los comentarios relacionados al identificador de la película.
{
    $lookup: {
        from: "Comments",
        localField: "ID",
        foreignField: "Movie ID",
        as: "Comments"
    }
}
  1. Proyección de campos:
    • Proyecta solo los campos necesarios, por ejemplo, el título de la película y los comentarios.
    • Esto facilita la visualización de los datos importantes y mejora la eficiencia de la consulta.
{
    $project: {
        title: 1,
        comments: 1
    }
}

¿Cómo borrar documentos específicos en MongoDB?

Para eliminar documentos específicos, utiliza el comando delete many. A continuación, mostramos cómo borrar todos los comentarios relacionados con un Movie ID particular:

db.comments.deleteMany({ "Movie ID": ObjectId("valor_del_identificador") });
```.

Aportes 1

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

`lookup` es una operación en MongoDB que permite realizar uniones (joins) entre colecciones. A través de `lookup`, puedes relacionar documentos de una colección con documentos de otra, usando campos específicos como el local (en la colección principal) y el foráneo (en la colección secundaria). Esto es útil para combinar datos relacionados y enriquecer las consultas. Aunque MongoDB no se basa en relaciones fuertes como SQL, el uso de `lookup` permite crear relaciones más complejas cuando es necesario, siempre considerando las mejores prácticas para evitar antipatrón.