Mongodb: jak policzyć różne wartości w polu
Możesz użyć następujących metod, aby zliczyć różne wartości w określonym polu w MongoDB:
Metoda 1: Znajdź listę różnych wartości
db.collection.distinct( 'field_name' )
Metoda 2: Znajdź liczbę różnych wartości
db.collection.distinct( 'field_name' ).length
Poniższe przykłady pokazują, jak używać każdej metody w przypadku zespołu zbierającego z następującymi dokumentami:
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 })
Przykład 1: Znajdź listę różnych wartości
Możemy użyć poniższego kodu, aby znaleźć listę odrębnych wartości w polu „zespół”:
db.teams.distinct( 'team' )
To zapytanie zwraca następujący wynik:
['Cavs', 'Mavs', 'Rockets']
Wynik pokazuje trzy różne nazwy zespołów we wszystkich dokumentach.
Możemy również użyć poniższego kodu, aby znaleźć listę odrębnych wartości w polu „pozycja”:
db.teams.distinct( 'position' )
To zapytanie zwraca następujący wynik:
['Center', 'Forward', 'Guard']
Uwaga : MongoDB domyślnie sortuje różne wartości alfabetycznie.
Przykład 2: Znajdź liczbę unikalnych wartości
Możemy użyć poniższego kodu, aby policzyć liczbę odrębnych wartości w polu „zespół”:
db.teams.distinct( 'team' ).length
To zapytanie zwraca następujący wynik:
3
To mówi nam, że w polu „zespół” znajdują się 3 różne wartości.
Możemy także użyć poniższego kodu do zliczenia ilości unikalnych wartości w polu „punkty”:
db.teams.distinct( 'points' ).length
To zapytanie zwraca następujący wynik:
5
To mówi nam, że w polu „punkty” znajduje się 5 różnych wartości.
Uwaga : Pełną dokumentację tej oddzielnej funkcji można znaleźć tutaj .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w MongoDB:
MongoDB: Jak grupować i liczyć
MongoDB: Jak grupować według wielu pól
MongoDB: Jak znaleźć maksymalną wartość w kolekcji