Skip to content

Commit f50eb62

Browse files
heldergomesHelder Ardachnikoff Gomes
andauthored
Add filter fields in pymongo pagination (#783)
Co-authored-by: Helder Ardachnikoff Gomes <[email protected]>
1 parent 9dc0ca2 commit f50eb62

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

fastapi_pagination/ext/pymongo.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
def paginate(
1818
collection: Collection[T],
1919
query_filter: Optional[Dict[Any, Any]] = None,
20+
filter_fields: Optional[Dict[Any, Any]] = None,
2021
params: Optional[AbstractParams] = None,
2122
sort: Optional[Sequence[Any]] = None,
2223
*,
@@ -27,11 +28,22 @@ def paginate(
2728
params, raw_params = verify_params(params, "limit-offset")
2829

2930
query_filter = query_filter or {}
31+
filter_fields = filter_fields or {}
3032

3133
total = collection.count_documents(query_filter)
32-
cursor = collection.find(query_filter, skip=raw_params.offset, limit=raw_params.limit, sort=sort, **kwargs)
34+
cursor = collection.find(
35+
query_filter,
36+
filter_fields,
37+
skip=raw_params.offset,
38+
limit=raw_params.limit,
39+
sort=sort,
40+
**kwargs,
41+
)
3342
items = [*cursor]
34-
t_items = apply_items_transformer(items, transformer)
43+
t_items = apply_items_transformer(
44+
items,
45+
transformer,
46+
)
3547

3648
return create_page(
3749
t_items,

0 commit comments

Comments
 (0)