diff --git a/pinecone/db_data/types/query_filter.py b/pinecone/db_data/types/query_filter.py index ebeaae716..925f91609 100644 --- a/pinecone/db_data/types/query_filter.py +++ b/pinecone/db_data/types/query_filter.py @@ -17,6 +17,22 @@ NinFilter = dict[Literal["$nin"], list[FieldValue]] ExistsFilter = dict[Literal["$exists"], bool] +# Operator-only filters (e.g., {"$eq": "value"}) +OperatorFilter = ( + EqFilter + | NeFilter + | GtFilter + | GteFilter + | LtFilter + | LteFilter + | InFilter + | NinFilter + | ExistsFilter +) + +# Field-level filters that can use operators or exact match (e.g., {"field": {"$eq": "value"}}) +FieldFilter = dict[str, OperatorFilter | FieldValue] + SimpleFilter = ( ExactMatchFilter | EqFilter @@ -28,6 +44,7 @@ | InFilter | NinFilter | ExistsFilter + | FieldFilter ) AndFilter = dict[Literal["$and"], list[SimpleFilter]] OrFilter = dict[Literal["$or"], list[SimpleFilter]]