В Mongoose, популярной библиотеке сопоставления объектов и документов (ODM) для MongoDB, предложение group позволяет нам выполнять операции агрегирования коллекций. Одной из мощных возможностей предложения group является возможность использования аккумуляторов, которые представляют собой функции, которые объединяют и обрабатывают данные внутри каждой группы. В этой статье мы рассмотрим различные аккумуляторы, доступные в предложении группы Mongoose, и предоставим примеры кода для каждого метода.
- $sum:
Аккумулятор $sum вычисляет сумму числовых значений внутри группы.
Model.aggregate([
{ $group: {
_id: "$field",
total: { $sum: "$numericField" }
}}
]);
- $avg:
Аккумулятор $avg вычисляет среднее числовых значений внутри группы.
Model.aggregate([
{ $group: {
_id: "$field",
average: { $avg: "$numericField" }
}}
]);
- $min:
Аккумулятор $min возвращает минимальное значение в группе.
Model.aggregate([
{ $group: {
_id: "$field",
min: { $min: "$numericField" }
}}
]);
- $max:
Аккумулятор $max возвращает максимальное значение в группе.
Model.aggregate([
{ $group: {
_id: "$field",
max: { $max: "$numericField" }
}}
]);
- $first:
Аккумулятор $first возвращает первое значение в группе.
Model.aggregate([
{ $group: {
_id: "$field",
first: { $first: "$valueField" }
}}
]);
- $last:
Аккумулятор $last возвращает последнее значение в группе.
Model.aggregate([
{ $group: {
_id: "$field",
last: { $last: "$valueField" }
}}
]);
- $push:
Аккумулятор $push создает массив всех значений в группе.
Model.aggregate([
{ $group: {
_id: "$field",
values: { $push: "$valueField" }
}}
]);
- $addToSet:
Аккумулятор $addToSet создает массив уникальных значений внутри группы.
Model.aggregate([
{ $group: {
_id: "$field",
uniqueValues: { $addToSet: "$valueField" }
}}
]);
В этой статье мы рассмотрели различные аккумуляторы, доступные в предложении группы Mongoose для агрегатов MongoDB. Мы рассмотрели такие аккумуляторы, как $sum, $avg, $min, $max, $first, $last, $push и $addToSet, предоставив примеры кода для каждого метода. Понимание этих аккумуляторов позволит вам выполнять мощные статистические операции с коллекциями MongoDB с помощью Mongoose.