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

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

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐