Вы можете использовать следующие методы для подсчета различных значений в определенном поле в MongoDB:
Метод 1: найти список различных значений
db.collection.distinct( 'field_name' )
Метод 2: найти количество различных значений
db.collection.distinct( 'field_name' ).length
В следующих примерах показано, как использовать каждый метод с набором команд со следующими документами:
db.teams.insertOne({team: " Mavs", position: " Guard", points: 31 })
db.teams.insertOne({team: " Mavs", position: " Guard", points: 22 })
db.teams.insertOne({team: " Rockets", position: " Center", points: 19 })
db.teams.insertOne({team: " Rockets", position: " Forward", points: 26 })
db.teams.insertOne({team: " Cavs", position: " Guard", points: 33 })
Пример 1: поиск списка различных значений
Мы можем использовать следующий код, чтобы найти список различных значений в поле «команда»:
db.teams.distinct( 'team' )
Этот запрос возвращает следующий результат:
[ 'Cavs', 'Mavs', 'Rockets' ]
В выходных данных показаны три различных названия команд из всех документов.
Мы также можем использовать следующий код, чтобы найти список различных значений в поле «позиция»:
db.teams.distinct( 'position' )
Этот запрос возвращает следующий результат:
[ 'Center', 'Forward', 'Guard' ]
Примечание.По умолчанию MongoDB сортирует отдельные значения в алфавитном порядке.
Пример 2: найти количество уникальных значений
Мы можем использовать следующий код для подсчета количества различных значений в поле «команда»:
db.teams.distinct( 'team' ).length
Этот запрос возвращает следующий результат:
3
Это говорит нам о том, что в поле «команда» есть 3 различных значения.
Мы также можем использовать следующий код для подсчета количества уникальных значений в поле «баллы»:
db.teams.distinct( 'points' ).length
Этот запрос возвращает следующий результат:
5
Это говорит нам о том, что в поле «точки» есть 5 различных значений.
Примечание.Полную документацию по отдельной функции можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в MongoDB:
MongoDB: как группировать и считать
MongoDB: как сгруппировать по нескольким полям
MongoDB: как найти максимальное значение в коллекции