Press "Enter" to skip to content

Aprendiendo MongoDB

mongodb

Aprendiendo MongoDB

MongoDB es una base de datos no relacional o tambien conocida como NoSQL, esto porque no usan sentencias SQL para la peticion de datos.

MongoDB se presenta como una base de datos orientada a documentos y es donde nos preguntamos ¿Qué es una base de datos orientada a documentos? por esa razón lo explicaré a continuación.

A diferencia de las bases de datos tradicionales, donde tenemos que crear la estructura de nuestra base de datos con las columnas correspondientes y los tipo de datos etc, para posteriormente insertar datos; en mongoDB nada de esto es necesario ya que al ser orientado a documentos mongoDB no necesita crear la estructura, ya que en vez de tener “tablas”, mongoDB tiene “colecciones”.

En lugar de guardar los datos en tablas como se hace en las base de datos relacionales, MongoDB guarda estructuras de datos en documentos similares a JSON con un esquema dinámico (MongoDB utiliza una especificación llamada BSON), haciendo que la integración de los datos en ciertas aplicaciones sea más fácil y rápida.
wikipedia

Es decir que para trabajar con MongoDB debemos dejar a un lado nuestro pensamiento con respecto a tablas y relaciones y pensar desde ahora en adelante en colecciones

¿Que es una colección?

Una colección según su significado es “Conjunto de de cosas de la misma clase”, por lo tanto debemos comprender que una colección en MongoDB es un conjunto de datos (documentos) de la misma clase, por ejemplo.

  • Podemos tener una colección de usuarios donde estarán almacenados todos nuestros usuarios del sistema.
  • Una colección de libros
  • Una colección de clientes
  • Una colección de música
  • etc

Como MongoDB no tiene una estructura de datos definida, cada documento puede tener una estructura diferente es así que por ejemplo en nuestra colección de Libros:

  • Un libro puede tener ciertos atributos como “autor, titulo, descripción”
  • y otro puede tener un atributo adicional “autor, titulo, descripción, categorías”
{
    "titulo" : "Libro A",
    "autor": "Nacho Luna",
    "descripcion": "Esta es la descripción del libro A"
},
{
    "titulo": "El mundo de MongoDB",
    "autor": "Ignacio",
    "descripcion" : "Alguna descripción para el libro B",
    "categorias": [
        "MongoDB",
        "Bases de Datos"
    ]
}

Es decir cada documento puede tener los atributos que le plazca puesto que no tenemos una estructura definida, entonces ¿Esto es una ventaja? según lo veo pues si.

Ocurre que en muchas ocasiones nuestra aplicación ha tenido que evolucionar de tal manera que nuestra base de datos ha estado cambiando cada cierto tiempo y a veces esto es practicamente una locura, porque tenemos nuevas necesidades que antes no y complican cada vez nuestra Base de datos, al trabajar con documentos practicamente esto se anula ya que podremos añadir o quitar atributos de acuerdo a nuestra conveniencia y poder evolucionar fácilmente.

¿Que es un documento?

En MongoDB un documento es un elemento dentro de la colección, cabe recordar también que cada documento puede tener su propia estructura.

Ejemplo de un documento en MongoDB

{
    "titulo": "El mundo de MongoDB",
    "autor": "Ignacio",
    "descripcion" : "Alguna descripción para el libro B",
    "categorias": [
        "MongoDB",
        "Bases de Datos"
    ]
}

¿Qúe ventajas tiene MongoDB ?

  • Escalable
  • Alto Rendimiento
  • Open Source
  • Sin esquemas
  • Aceleración en memoria

Desventajas

  • No soporta transacciones

Bueno aún hay mucho que hablar de MongoDB pero por lo pronto espero que este post inicial te haya despejado ciertas dudas. Posteriormente estaré escribiendo más al respecto.

Adolfo Cuadros
Adolfo Cuadros

View all posts