Aggregate Asset Unique Values
- async AsyncCogniteClient.assets.aggregate_unique_values(
- property: AssetProperty | str | list[str],
- advanced_filter: Filter | dict[str, Any] | None = None,
- aggregate_filter: AggregationFilter | dict[str, Any] | None = None,
- filter: AssetFilter | dict[str, Any] | None = None,
Get unique properties with counts for assets.
Note
In the case of text fields, the values are aggregated in a case-insensitive manner.
- Parameters:
property (AssetPropertyLike) – The property to group by.
advanced_filter (Filter | dict[str, Any] | None) – The advanced filter to narrow down assets.
aggregate_filter (AggregationFilter | dict[str, Any] | None) – The filter to apply to the resulting buckets.
filter (AssetFilter | dict[str, Any] | None) – The filter to narrow down assets (strict matching).
- Returns:
List of unique values of assets matching the specified filters and search.
- Return type:
UniqueResultList
Examples:
Get the timezones (metadata key) with count for your assets in your CDF project:
>>> from cognite.client import CogniteClient >>> from cognite.client.data_classes.assets import AssetProperty >>> client = CogniteClient() >>> # async_client = AsyncCogniteClient() # another option >>> result = client.assets.aggregate_unique_values( ... AssetProperty.metadata_key("timezone") ... ) >>> print(result.unique)
Get the different labels with count used for assets created after 2020-01-01 in your CDF project:
>>> from cognite.client.data_classes import filters >>> from cognite.client.data_classes.assets import AssetProperty >>> from cognite.client.utils import timestamp_to_ms >>> from datetime import datetime >>> created_after_2020 = filters.Range( ... AssetProperty.created_time, gte=timestamp_to_ms(datetime(2020, 1, 1)) ... ) >>> result = client.assets.aggregate_unique_values( ... AssetProperty.labels, advanced_filter=created_after_2020 ... ) >>> print(result.unique)
Get the different labels with count for assets updated after 2020-01-01 in your CDF project, but exclude all labels that starts with “test”:
>>> from cognite.client.data_classes.assets import AssetProperty >>> from cognite.client.data_classes import aggregations >>> from cognite.client.data_classes import filters >>> not_test = aggregations.Not(aggregations.Prefix("test")) >>> created_after_2020 = filters.Range( ... AssetProperty.last_updated_time, gte=timestamp_to_ms(datetime(2020, 1, 1)) ... ) >>> result = client.assets.aggregate_unique_values( ... AssetProperty.labels, ... advanced_filter=created_after_2020, ... aggregate_filter=not_test, ... ) >>> print(result.unique)