MongoDB es un sistema de gestión de bases de datos (dbms) gratuito, de código abierto, multiplataforma y orientado a documentos. Es un tipo de base de datos NoSQL. Almacena los datos en formato BSON en el disco duro. BSON es una forma binaria para representar una estructura de datos simple, una array asociativa y varios tipos de datos en MongoDB. NoSQL es la base de datos utilizada más recientemente que proporciona un mecanismo para el almacenamiento y la recuperación de datos. En lugar de usar tablas y filas como en las bases de datos relacionales, la arquitectura mongodb se compone de colecciones y documentos.
Agregación en MongoDB
La operación de agregación agrupa los valores de varios documentos (filas en el caso de SQL) para realizar una variedad de operaciones en los datos agrupados y devolverá un solo resultado para cada dato agrupado después de la agregación.
Sintaxis:
db.collection_name.aggregate(aggregate operations)
Base de datos de muestra utilizada en todos los ejemplos a continuación:
Ejemplo 1:
Python3
from pymongo import MongoClient my_client = MongoClient('localhost', 27017) db = my_client["GFG"] coll = db["Student"] # Aggregation cursor = coll.aggregate([{"$group": {"_id":"$Branch", "similar_branches":{"$sum":1} } }]) for document in cursor: print(document)
Producción:
Aquí, usamos el comando «$group» para agrupar y luego por «_id»:»branches» estamos agrupando ids según las ramas. «sucursales_similares» es la palabra clave utilizada para el número total de sucursales similares, podemos usar cualquier palabra clave aquí. “$sum:1” se utiliza como contador del número total de cada sucursal. La suma se incrementa en 1.
Ejemplo 2: También podemos usar la consulta de agregación para contar el número de documentos en la base de datos.
Python3
from pymongo import MongoClient my_client = MongoClient('localhost', 27017) db = my_client["GFG"] coll = db["Student"] # Aggregation cursor = coll.aggregate([{"$group": {"_id":"$None", "total collections":{"$sum": 1} } }]) for document in cursor: print(document)
Producción:
{'_id': None, 'total collections': 8}
Publicación traducida automáticamente
Artículo escrito por adibakouser2018 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA