pagination optimization

This commit is contained in:
Mazyar
2026-05-14 14:18:34 +03:30
parent eaa681814d
commit f08982afb5
3 changed files with 29 additions and 8 deletions
+9
View File
@@ -40,6 +40,14 @@ func collectionName() string {
return "tenders"
}
// tenderSearchListProjection excludes large fields not needed for list/search API payloads.
func tenderSearchListProjection() bson.M {
return bson.M{
"content_xml": 0,
"document_summaries": 0,
}
}
// tenderRepository implements TenderRepository interface using MongoDB ORM
type tenderRepository struct {
ormRepo orm.Repository[Tender]
@@ -332,6 +340,7 @@ func (r *tenderRepository) Search(ctx context.Context, form *SearchForm, paginat
Limit(pagination.Limit).
Skip(pagination.Offset).
SortBy(sort, sortOrder).
Projection(tenderSearchListProjection()).
Build()
result, err := r.ormRepo.FindAll(ctx, filter, paginationBuilder)