Агрегация MongoDB: изучение методов манипулирования данными на примерах кода

Среда агрегирования MongoDB предоставляет мощные инструменты для манипулирования и анализа данных. В этой статье мы рассмотрим различные методы, доступные в Aggregation Framework, а также примеры кода для выполнения сложных манипуляций с данными в MongoDB.

  1. Метод проекта:
    Метод $projectпозволяет выбирать определенные поля из документов и изменять форму вывода. Это полезно для фильтрации и преобразования данных. Вот пример, в котором выбираются поля «имя», «кухня» и «адрес» из коллекции «рестораны» и ограничивается результат пятью документами:
db.restaurants.aggregate([
  {
    $project: {
      "name": 1,
      "cuisine": 1,
      "address": 1
    }
  },
  {
    $limit: 5
  }
])

<старый старт="2">

  • Метод сопоставления.
    Метод $matchфильтрует документы на основе заданных условий. Он похож на метод find, но работает в рамках конвейера агрегации. Вот пример, который извлекает рестораны с типом кухни «Итальянская»:
  • db.restaurants.aggregate([
      {
        $match: {
          cuisine: "Italian"
        }
      }
    ])
    1. Метод группировки.
      Метод $groupгруппирует документы по указанному полю и вычисляет совокупные значения. Это полезно для выполнения расчетов и создания сводной статистики. Вот пример, в котором рестораны группируются по кухням и подсчитывается количество для каждой кухни:
    db.restaurants.aggregate([
      {
        $group: {
          _id: "$cuisine",
          count: { $sum: 1 }
        }
      }
    ])
    1. Метод сортировки.
      Метод $sortсортирует документы на основе указанных полей. Это полезно для упорядочивания вывода на основе определенных критериев. Вот пример сортировки ресторанов по возрастанию их названий:
    db.restaurants.aggregate([
      {
        $sort: {
          name: 1
        }
      }
    ])
    1. Метод ограничения.
      Метод $limitограничивает количество документов, возвращаемых в результате. Это полезно для разбивки на страницы или получения ограниченного подмножества данных. Вот пример, который извлекает первые 10 ресторанов:
    db.restaurants.aggregate([
      {
        $limit: 10
      }
    ])

    Среда агрегирования MongoDB предлагает широкий спектр методов манипулирования и анализа данных. В этой статье мы рассмотрели $project, $match, $group, $sortи $limitвместе с примерами кода. Используя эти методы, вы можете выполнять сложные манипуляции с данными, получать значимую информацию и оптимизировать запросы в MongoDB.