Ejemplos prácticos de consultas
Escenarios de consultas de Mínimo/Máximo en el mundo real
Configuración de la base de datos
mongo
use labex_examples
1. Consultas de productos de comercio electrónico
Encontrar rangos de precios
db.products.aggregate([
{
$group: {
_id: "$category",
cheapestProduct: { $min: "$price" },
mostExpensiveProduct: { $max: "$price" }
}
}
]);
2. Análisis de salarios de empleados
db.employees.aggregate([
{
$group: {
_id: "$department",
lowestSalary: { $min: "$salary" },
highestSalary: { $max: "$salary" },
salaryRange: {
$subtract: [{ $max: "$salary" }, { $min: "$salary" }]
}
}
}
]);
3. Consultas basadas en el tiempo
Seguimiento de la actividad de los usuarios
db.userLogs.aggregate([
{
$group: {
_id: "$userId",
firstLogin: { $min: "$timestamp" },
lastLogin: { $max: "$timestamp" }
}
}
]);
Diagrama de flujo de la estrategia de consulta
graph TD
A[Input Collection] --> B{Select Grouping Field}
B --> C[Apply Min/Max Operators]
C --> D[Process Results]
D --> E[Analyze Data]
Consideraciones de rendimiento
Técnica |
Impacto |
Recomendación |
Indexación |
Alto |
Crear índices en los campos de consulta |
Limitar resultados |
Medio |
Utilizar la etapa $limit |
Proyección |
Bajo |
Seleccionar solo los campos necesarios |
Filtrado avanzado
Mínimo/Máximo condicional
db.sales.aggregate([
{ $match: { region: "North" } },
{
$group: {
_id: "$product",
maxSale: { $max: "$amount" }
}
}
]);
Mejores prácticas
- Utilizar índices adecuados
- Minimizar el procesamiento de datos
- Dividir las consultas complejas en etapas
Desarrollado por LabEx, dominando las técnicas de consulta de MongoDB.