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

Acerca de MongoDB

MongoDB es un sistema de gestión de bases de datos (DBMS) de código abierto que utiliza un modelo de datos orientado a documentos. Se considera una base de datos NoSQL, ya que no utiliza el modelo relacional y, por lo tanto, no utiliza SQL como lenguaje de consulta.

El modelo orientado a documentos permite que MongoDB almacene datos semiestructurados que no requieren un esquema fijo. Puede lograr esto mediante el uso de documentos JSON.

MongoDB es utilizado por algunas de las empresas más grandes del mundo, incluidas Facebook, Google, Nokia, MTV Networks, Cisco, Forbes y muchas más.

MongoDB también es un DBMS multiplataforma, actualmente compatible con Windows, Mac, Solaris y varias distribuciones de Linux en el momento de escribir este artículo.

Una base de datos MongoDB se diferencia de una base de datos relacional en que MongoDB utiliza un modelo orientado a documentos para almacenar datos. En el modelo orientado a documentos, los datos se almacenan dentro de los documentos de una colección. En el modelo relacional, los datos se almacenan en filas de una tabla.

Las Colecciones

En MongoDB, una colección es un grupo de documentos. Una colección normalmente contiene documentos que tienen un tema similar (como Usuarios, Productos, Publicaciones, etc.).

Por lo tanto, las colecciones son, en muchos sentidos, similares a las tablas del modelo relacional.

Los Documentos

En MongoDB, los documentos se almacenan como JSON documentos. JSON (JavaScript Object Notation) es un estándar que facilita el intercambio de datos. Los documentos JSON son similares a los documentos XML en que los datos pueden presentarse de forma jerárquica y pueden ser leídos tanto por humanos como por computadoras.

Este es un ejemplo de un documento JSON. Así es como se ven los documentos dentro de una base de datos MongoDB.

{
    artistname : "Deep Purple",
    albums : [
                {
                    album : "Machine Head",
                    year : 1972,
                    genre : "Rock"
                }, 
                {
                    album : "Stormbringer",
                    year : 1974,
                    genre : "Rock"
                }
            ]
}

El _id El campo es el identificador único de un documento. MongoDB permite recuperar/referenciar cada documento usando este campo. Puede proporcionar esto o dejar que MongoDB lo genere.

Mediante el uso de JSON, los resultados de las consultas se pueden analizar fácilmente, con poca o ninguna transformación, directamente mediante JavaScript y los lenguajes de programación más populares. Esto se debe a que los documentos JSON utilizan el nombre/par y las convenciones de matriz que son familiares para los lenguajes de programación más populares, como C, C++, C#, Java, JavaScript, Perl, Python y muchos otros. Esto reduce la cantidad de lógica empresarial que debe integrarse en las aplicaciones que utilizan MongoDB.

Detrás de escena, MongoDB en realidad almacena los documentos JSON en un formato codificado en binario llamado BSON. BSON amplía JSON a través de la compatibilidad con tipos de datos adicionales y para ser eficiente para codificar y decodificar dentro de diferentes idiomas.

Sin esquema

Cada documento JSON de una colección puede contener su propia estructura. Por lo tanto, no existe un esquema fijo que limite el tipo de datos que se pueden ingresar en una base de datos MongoDB.

Esto contrasta con una base de datos relacional donde primero debe crear el esquema (es decir, definir las tablas, columnas, tipos de datos, etc.), antes de ingresar cualquier dato. Si los datos no se adhieren al esquema, no entran en la base de datos.

En una base de datos MongoDB, no existe una regla que diga qué campos o cuántos campos debe tener cada documento. Por ejemplo, un documento de una colección puede contener nombre, dirección y número de teléfono, mientras que otro documento puede contener nombre y dirección de correo electrónico.