Исследование различных аккумуляторов в предложении группы Mongoose

В Mongoose, популярной библиотеке сопоставления объектов и документов (ODM) для MongoDB, предложение group позволяет нам выполнять операции агрегирования коллекций. Одной из мощных возможностей предложения group является возможность использования аккумуляторов, которые представляют собой функции, которые объединяют и обрабатывают данные внутри каждой группы. В этой статье мы рассмотрим различные аккумуляторы, доступные в предложении группы Mongoose, и предоставим примеры кода для каждого метода.

  1. $sum:
    Аккумулятор $sum вычисляет сумму числовых значений внутри группы.
Model.aggregate([
  { $group: {
    _id: "$field",
    total: { $sum: "$numericField" }
  }}
]);
  1. $avg:
    Аккумулятор $avg вычисляет среднее числовых значений внутри группы.
Model.aggregate([
  { $group: {
    _id: "$field",
    average: { $avg: "$numericField" }
  }}
]);
  1. $min:
    Аккумулятор $min возвращает минимальное значение в группе.
Model.aggregate([
  { $group: {
    _id: "$field",
    min: { $min: "$numericField" }
  }}
]);
  1. $max:
    Аккумулятор $max возвращает максимальное значение в группе.
Model.aggregate([
  { $group: {
    _id: "$field",
    max: { $max: "$numericField" }
  }}
]);
  1. $first:
    Аккумулятор $first возвращает первое значение в группе.
Model.aggregate([
  { $group: {
    _id: "$field",
    first: { $first: "$valueField" }
  }}
]);
  1. $last:
    Аккумулятор $last возвращает последнее значение в группе.
Model.aggregate([
  { $group: {
    _id: "$field",
    last: { $last: "$valueField" }
  }}
]);
  1. $push:
    Аккумулятор $push создает массив всех значений в группе.
Model.aggregate([
  { $group: {
    _id: "$field",
    values: { $push: "$valueField" }
  }}
]);
  1. $addToSet:
    Аккумулятор $addToSet создает массив уникальных значений внутри группы.
Model.aggregate([
  { $group: {
    _id: "$field",
    uniqueValues: { $addToSet: "$valueField" }
  }}
]);

В этой статье мы рассмотрели различные аккумуляторы, доступные в предложении группы Mongoose для агрегатов MongoDB. Мы рассмотрели такие аккумуляторы, как $sum, $avg, $min, $max, $first, $last, $push и $addToSet, предоставив примеры кода для каждого метода. Понимание этих аккумуляторов позволит вам выполнять мощные статистические операции с коллекциями MongoDB с помощью Mongoose.