two - mongodb unwind
Cómo agregar por piso en MongoDB (1)
MongoDB Aggregation Framework no tiene función de floor
. Solo tiene operadores aritméticos simples. Entonces, ¿cómo componer la función de floor
usándolos?
De acuerdo con la definición floor(number) = number - (number % step)
podemos componer nuestra fórmula de agregación:
{$subtract: ["$number", {$mod: ["$number", <step>]}]}
donde el step
es de orden de magnitud. Primero, calcula el resto con $mod
y luego calcula la diferencia con $subtract
.
Por lo tanto, la agrupación de los usuarios por age
conectada a números enteros será
db.users.aggregate(
{$group: {_id: {$subtract: ["$age", {$mod: ["$age", 1]}] }}} )
Si desea piso a 10 o 1000, use 10 o 1000 en lugar de 1.