From bd99899182d21787724dd1dfe0fcefc467e38618 Mon Sep 17 00:00:00 2001 From: Marvin Zhang Date: Tue, 28 Oct 2025 11:55:00 +0800 Subject: [PATCH] fix(core): default to _id descending sort when sort is nil or parsing fails Ensure MustGetSortOption returns a default bson.D{{"_id", -1}} on parse errors and GetPaginationPipeline uses {_id: -1} when sort is nil to provide consistent default ordering. --- core/controllers/utils.go | 3 ++- core/models/service/base_service.go | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/core/controllers/utils.go b/core/controllers/utils.go index a0e09c6e..118f415a 100644 --- a/core/controllers/utils.go +++ b/core/controllers/utils.go @@ -259,7 +259,8 @@ func GetSortsOption(c *gin.Context) (sort bson.D, err error) { func MustGetSortOption(c *gin.Context) (sort bson.D) { sort, err := GetSortsOption(c) if err != nil { - return nil + // Return default sort by _id descending when parsing fails + return bson.D{{"_id", -1}} } return sort } diff --git a/core/models/service/base_service.go b/core/models/service/base_service.go index 363430c8..61e52bc1 100644 --- a/core/models/service/base_service.go +++ b/core/models/service/base_service.go @@ -491,6 +491,9 @@ func GetPaginationPipeline(query bson.M, sort bson.D, skip, limit int) []bson.D if query == nil { query = bson.M{} } + if sort == nil { + sort = bson.D{{"_id", -1}} + } return []bson.D{ {{Key: "$match", Value: query}}, {{Key: "$sort", Value: sort}},