MongoDB: Подсчет и уникальные данные в коллекции

Изучим методы обработки данных в коллекции MongoDB: подсчет количества значений и вывод уникальных данных.

Подсчет количества объектов

Для работы используем коллекцию users с тремя объектами. Каждый объект содержит поля name, age, email и isMarried. Для подсчета объектов с заданным критерием используем метод count().

Например, для поиска количества объектов с age равным 18:

db.users.count({ age: 18 })

Результат — 1, так как только один объект удовлетворяет условию. Изменение фильтра, например, на name: "Mike", вернет 2, поскольку два объекта имеют имя «Mike». Метод count() позволяет использовать любые фильтры, включая сравнение по нескольким полям.

Уникальные значения

Для получения уникальных значений по полю используется функция distinct(). Например, для получения всех уникальных email адресов:

db.users.distinct("email")

Функция вернет массив уникальных email адресов без дубликатов. Аналогично можно использовать distinct() для других полей, например, age или name.

Агрегация данных

Агрегация позволяет объединять данные по критериям. Например, можно объединить пользователей с одинаковым именем и посчитать сумму их возраста. Для этого используем функцию aggregate().

db.users.aggregate([
  {
    $group: {
      _id: "$name",
      totalAge: { $sum: "$age" }
    }
  }
])

Этот запрос группирует пользователей по полю name, суммируя их возраст в поле totalAge. Результат содержит объекты с уникальными именами и суммарным возрастом для каждого имени. Фильтр добавляется в начало массива. Например, для фильтрации по полю name со значением «Mike»:

db.users.aggregate([
  { $match: { name: "Mike" } },
  {
    $group: {
      _id: "$name",
      totalAge: { $sum: "$age" }
    }
  }
])

Пустые фигурные скобки {} в качестве фильтра означают, что обработаны будут все документы. Агрегация позволяет обрабатывать и анализировать данные, например, подсчитывать сумму покупок пользователей или анализировать другие метрики.

Рассмотрены методы моментальной обработки данных в MongoDB: подсчет количества объектов, получение уникальных значений и агрегация данных. Эти методы позволяют эффективно работать с данными.

Что будем искать? Например,программа