涉及到多字段排序的操作,代码结构如下,详情见注释:

func makeGoodsOptions(page, pageSize int64) *options.FindOptions {
	//分页
	limit := pageSize
	skip := (page - 1) * pageSize

	//排序 map无序,因此这样子会报错
	// sortMap := make(map[string]interface{}, 0)
	// sortMap["update_time"] = -1
	// sortMap["goods_id"] = -1

	//This type should be used when the order of the elements matters
	//这是个有序类型
	//本质上是[]struct{key string,value interface}这个类型
	//详情见mongo-golang-driver
	sort := bson.D{
		bson.E{"update_time", -1},
		bson.E{"goods_id", -1},
	}
	//查询条件
	opts := &options.FindOptions{
		Sort:  sort,
		Limit: &limit,
		Skip:  &skip,
	}

	return opts
}

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐