Resumen de MongoDB: Empezando con MongoDB

Resumen de MongoDB: Empezando con MongoDB

  • Orquestación
6 min de lectura Actualizado Oct 24, 2017

Puntos clave: MongoDB están una base de datos NoSQL escalable que utiliza documentos similares a JSON para un almacenamiento de datos flexible. Esta guía cubre sus características clave, incluyendo el shell de línea de comandos y la estructura del documento, enfatizando la velocidad por encima de la eficiencia de almacenamiento.

  • Los datos se están almacenados en colecciones de documentos, simplificando la gestión de big data.
  • Soporta múltiples lenguajes de programación a través de diversos controladores, incluyendo Python y Java.

Aquí ofrecemos una visión general de la base de datos de MongoDB. En publicaciones posteriores daremos ejemplos más detallados de cómo utilizar MongoDB.

Primero, MongoDB están una base de datos de big data noSQL. Encaja en la definición de big data, porque escala (es decir, puede ampliarse) simplemente añadiendo más servidores a un sistema distribuido. Y no están necesario ningún esquema, como una base de datos RDBMS, como Oracle.

Los registros de datos de MongoDB son almacenados en formato JSON (JavaScript Object Notation), que están autodescriptivos, es decir, los metadatos (es decir, el esquema) se están almacenados junto con los datos.

Mongo tiene un shell de comandos interactivo. A los programadores de JavaScript les encantará porque la sintaxis están JavaScript. Para abrir el shell te simplemente escribe:

    mongo

Conceptos

Los registros de MongoDB son llaman documentos. Cada base de datos de MongoDB (te puede tener muchas) incluye colecciones, que son un conjunto de documentos JSON. Cada colección y documento tiene un ObjectID creado por MongoDB o suministrado por el programador.

Para ilustrar, supongamos que tenemos una base de datos llamada productos.

Podríamos tener dos colecciones que incluyeran todos los productos agrupándolos según el lugar donde son vendidos:

Colección Documentos y campos
Productos vendidos en Europa EAN (código de barras europeo), peso en kilos
Productos vendidos en EE. UU. UPC (código de barras americano), peso en libras

El almacenamiento de datos es barato y la memoria y la CPU cuestan más. Así que algunas bases de datos de big data, como Cassandra y MongoDB, descartan la idea de una base de datos normalizada, que es uno de los principios clave de una base de datos RDBMS.

Por ejemplo, con Oracle te tendría una categoría de producto en un registro de producto. La tabla de categorías de producto contiene campos comunes a todos esos productos. Cada registro de producto apunta a un registro de categoría de producto, de modo que esos datos comunes no se están almacenados más de una vez:

Tabla de productos
Campos: número de producto, categoría de producto

 

Tabla de categorías de productos
Campos: categoría de producto, peso, color

Pero entonces te tener que hacer una operación de unión si te quieres saber el color o el peso de un producto. Pero una unión están una operación computacionalmente costosa. Eso lleva tiempo. MongoDB almacena los datos así:

Documentos de producto
Campos: número de producto, categoría de producto, peso, color

Los programadores de SGBD dicen que eso crea duplicación y desperdicia espacio. Los programadores de MongoDB dirían "sí", pero la velocidad están más importante que el almacenamiento.

En otras palabras, los registros de MongoDB podrían verse así:

Producto 1 Categoría: pañales para niños pequeños Color azul
Producto 2 Categoría: pañales grandes para niños Color azul
Producto 3 Categoría: pañales de niña pequeños Color rosa

Obviamente. Cuando te la categoría te el color.

Lo ilustraremos creando la base de datos de productos y añadiendo algunos productos allí. Pega estos comandos en el shell de MongoDB.

Primero Crea la base de datos de productos.

    use products
switched to db products

Luego estas dos colecciones:

Luego añade algunos datos:

    > db.createCollection("boyDiapers")
{ "ok" : 1 }
> db.createCollection("girlDiapers")
{ "ok" : 1 }
>

Luego añade algunos datos:

    db.boyDiapers.insert([
{
size: 1,
color: 'blue',
brand: 'toddler tyke',
}
])
db.girlDiapers.insert([
{
size: 1,
color: 'pink',
brand: 'little angel',
}
])

Fíjate en dos cosas. Primero, utilizamos el formato db.( collection).insert para añadir el documento. Segundo, utilizamos los corchetes [], que indican un array, para eso podemos añadir más de un documento a la vez.

Ahora Crea más datos para poder consultar datos:

    db.boyDiapers.insert([
{
size: 2,
color: 'white',
brand: 'boy large white'
}
])
db.girlDiapers.insert([
{
size: 2,
color: 'while',
brand: 'girl large'
}
])

Selección de datos

Si te utiliza encuentra sin argumentos, lista todos los documentos. utiliza bonito mostrar los resultados en formato JSON insanglado fácil de leer:

    > db.girlDiapers.find().pretty()
{
"_id" : ObjectId("59d1e9d5ccf50b62c5a7af55"),
"size" : 1,
"color" : "pink",
"brand" : "little angel"
}
{
"_id" : ObjectId("59d1f022ccf50b62c5a7af57"),
"size" : 1,
"color" : "while",
"brand" : "girl large"
}
{
"_id" : ObjectId("59d1f565ccf50b62c5a7af59"),
"size" : 2,
"color" : "while",
"brand" : "girl large"
}

Encuentra pañales para niñas de talla 2 y añade argumentos a la afirmación de encontrar:

    db.girlDiapers.find({"size":2})
{ "_id" : ObjectId("59d1f565ccf50b62c5a7af59"), "size" : 2, "color" : "while", "brand" : "girl large" }

Ahora bien, te no podría buscar en las colecciones de pañales de niños y niñas al mismo tiempo. MongoDB no hace eso. En su lugar, te tener que programar eso en tu aplicación para que te programe usando algún controlador (Ve abajo).

Documentos Normalizados

Acabamos de decir que en MongoDB no están normalización porque el almacenamiento están barato y la capacidad de cálculo es cara. Pero te Crea normalizar documentos.

Por ejemplo, podemos Crea un registro de ventas para cada documento grande de niña talla 2 como este, con el campo de pañales apuntando al objeto pañal. Eso podría Haz más sentido en este caso, ya que no te querría que la colección de pañales creciera muchas veces cada vez te Haz una venta.

    db.girlDiapers.insert([
{ "diaper" : ObjectId("59d1f565ccf50b62c5a7af59"),
"price" : 45.2,
"quanity" : 10,
"sku" : "case"
}
])

Shell de línea de comandos

Controladores de MongoDB

Por supuesto, probablemente te no utiliza el shell de línea de comandos de una aplicación. En su lugar, te escribiría un programa para interactuar con MongoDB usando cualquiera de los muchos controladores disponibles. son controladores para C++, C#, Java, Node.JS, Scala, Python y más.

Por ejemplo, para utilizar Python:

    sudo pip install pymongo

Luego, para consultar pañales talla 2 en las colecciones de chico y niña:

Salidas:

    from pymongo import MongoClient
client = MongoClient()
db = client.products
x=db.collection_names()
for i in range(len(x)):
c=x[i]
d = db.get_collection(c)
for e in d.find({"size": 2}):
print(e)

Salidas:

    {'size': 2.0, 'brand': 'boy large white', 'color': 'white', '_id': ObjectId('59d1f564ccf50b62c5a7af58')}
{'size': 2.0, 'brand': 'girl large', 'color': 'while', '_id': ObjectId('59d1f565ccf50b62c5a7af59')}

En la próxima entrada Obtén algunos temas más avanzados de MongoDB.

Guía de MongoDB

  1. Resumen de MongoDB: Empezando con MongoDB
  2. Cómo instalar MongoDB en Ubuntu y Mac
  3. Creación de una base de datos en MongoDB
  4. Comandos básicos de MongoDB Shell
  5. MongoDB Compass: Uso de la interfaz gráfica de Mongo
  6. Explicación del Control de Acceso Basado en Roles (RBAC) de MongoDB
  7. Explicación de los operadores de proyección y proyección de MongoDB
  8. Explicación de las funciones agregadas de MongoDB
  9. Ordenación de MongoDB: método y ejemplos de sort()
  10. Uso de operadores de Push & Pull en MongoDB
  11. Cómo utiliza MongoDB $unwind
  12. 23 operadores comunes de consultas de MongoDB y cómo utilizarlos
  13. Ejemplos de consultas de geolocalización de MongoDB
  14. Introducción a las transacciones de MongoDB
  15. Índices de MongoDB: Principales tipos de índices y cómo gestionarlos
  16. Mejores comandos de MongoDB te necesitas saber
  17. Replicación de MongoDB: Una introducción completa
  18. Cómo configurar un clúster de MongoDB
  19. Fragmentos de MongoDB: Conceptos, Ejemplos y Tutoriales
  20. MongoDB Atlas: Configuración y uso de MongoDB gestionado
  21. Cómo ejecutar MongoDB como contenedor Docker
  22. Uso, gestión y requisitos de memoria de MongoDB
  23. Cómo utilizar Mongodump para copias de seguridad de MongoDB
  24. Ejemplos de Mongorestore para restaurar copias de seguridad de MongoDB
  25. Cómo utilizar PyMongo
  26. Cómo utilizar Mongoose para MongoDB y NodeJS
  27. Chuletas de MongoDB
  28. MongoDB vs Cassandra: Comparación de bases de datos NoSQL
  29. PostgreSQL vs MongoDB: Comparando bases de datos
  30. MySQL vs MongoDB: Comparando bases de datos
  31. Certificaciones MongoDB: Una introducción

Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.

Más de Orquestación

¿Te interesa saber más de BMC?

El Brief están nuestro correo mensual sobre el mainframe y la orquestación empresarial: investigación, historias de clientes, noticias de productos, eventos.

Al registrarse para esta oferta te son confirmar que te leído y aceptado la Política de Privacidad de BMC.

Tú te has suscrito a The Brief

El Brief abarca la orquestación de mainframe y empresa—BMC AMI y Control-M—y la investigación de analistas, despliegues de clientes y eventos en ambas áreas.