Distinct
The distinct operation returns all unique values for a specified field across a collection, equivalent to SQL's SELECT DISTINCT. It is useful for building autocomplete lists, enumerating categories, or checking what values actually exist in production data.
Basic usage
import cats.effect.IO
// Collect all distinct string values
val statuses: IO[Iterable[String]] = collection.distinct[String]("status").all
// Stream distinct values one at a time
val stream: fs2.Stream[IO, String] = collection.distinct[String]("status").stream
With a filter
Pass a Filter to restrict the documents considered before computing distinct values:
import mongo4cats.operations.Filter
// Only look at active documents
val activeCategories: IO[Iterable[String]] =
collection.distinct[String]("category", Filter.eq("active", true)).all