Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
$bucket
Nouveau depuis la version 8.0
Non pris en charge par le cluster Elastic.
L'étape $bucket d'agrégation dans Amazon DocumentDB vous permet de regrouper les documents d'entrée dans des compartiments en fonction d'une expression spécifiée et de limites de compartiment. Cela peut être utile pour analyser les données qui se situent dans certaines plages de valeurs ou catégories.
Paramètres
-
groupBy(obligatoire) : expression qui spécifie la valeur à utiliser pour le regroupement. -
boundaries(obligatoire) : tableau de valeurs doubles qui définit les limites du compartiment. Les documents sont affectés à des compartiments en fonction de la valeur de l'groupByexpression comprise dans les limites spécifiées. -
default(facultatif) : valeur littérale produite pour les documents dont la valeurgroupByd'expression ne se situe dans aucune des limites spécifiées. -
output(facultatif) : objet qui spécifie les informations à générer pour chaque compartiment. Vous pouvez utiliser des opérateurs d'accumulateur tels que$sum,$avg$min, et$maxpour calculer les agrégations pour chaque compartiment.
Exemple (MongoDB Shell)
L'exemple suivant montre comment utiliser l'$bucketétape pour regrouper les données de vente par fourchette de prix.
Création d'exemples de documents
db.sales.insertMany([ { item: "abc", price: 10, quantity: 2, date: new Date("2020-09-01") }, { item: "def", price: 20, quantity: 1, date: new Date("2020-10-01") }, { item: "ghi", price: 5, quantity: 3, date: new Date("2020-11-01") }, { item: "jkl", price: 15, quantity: 2, date: new Date("2020-12-01") }, { item: "mno", price: 25, quantity: 1, date: new Date("2021-01-01") } ]);
Exemple de requête
db.sales.aggregate([ { $bucket: { groupBy: "$price", boundaries: [0, 10, 20, 30], default: "Other", output: { "count": { $sum: 1 }, "totalQuantity": { $sum: "$quantity" } } } }, { $sort: { _id: 1 } } ])
Sortie
[
{ _id: 0, count: 1, totalQuantity: 3 },
{ _id: 10, count: 2, totalQuantity: 4 },
{ _id: 20, count: 2, totalQuantity: 2 }
]
Exemples de code
Pour afficher un exemple de code d'utilisation de la $bucket commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :