Filters
Filters convert query parameters into MongoDB query conditions automatically.
Define a FilterSet
Inherit FilterSet and declare fields:
from flask_mongo_drf import FilterSet, CharFilter, NumberFilter
class UserFilter(FilterSet):
name = CharFilter(lookup_expr='icontains') # case-insensitive contains
age = NumberFilter(lookup_expr='gte') # greater than or equal
Usage in ViewSet
Set filterset_class in ViewSet:
class UserViewSet(MongoModelViewSet):
model_class = UserModel
filterset_class = UserFilter
Then clients can send: GET /users/?name=john&age__gte=18
Built-in Filter Types
CharFilter — string fields
NumberFilter — numeric fields
BooleanFilter — boolean fields
DateFilter — date fields
ObjectIdFilter — ObjectId fields
Supported Lookup Expressions
exact, iexact, contains, icontains, gt, gte, lt, lte, ne, in, exists