为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 go mongo 驱动程序一起执行查找、区分和排序

如何使用 go mongo 驱动程序一起执行查找、区分和排序

Go
慕田峪9158850 2022-06-21 10:28:01
我有一个使用"labix.org/v2/mgo"库制作的命令err = getCollection.Find(bson.M{}).Sort("department").Distinct("department", &listedDepartment)这工作正常。但是现在我正在转向官方的 golang mongo-driver "go.mongodb.org/mongo-driver/mongo",我想在那个库中运行这个命令,但是没有直接的函数可以与 Find then Sort then Distinct 一起使用。如何使用这个 mongo-driver 来实现这个命令。变量listedDepartment是 的类型[]string。请建议我知道解决方案。
查看完整描述

1 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

你可以使用Collection.Distinct(),但它还不支持排序:


// Obtain collection:

c := client.Database("dbname").Collection("collname")


ctx := context.Background()

results, err := c.Distinct(ctx, "department", bson.M{})

它返回一个类型的值[]interface{}。如果您知道它包含string值,则可以使用循环和类型断言来获取字符串值,如下所示:


listedDepartment = make([]string, len(results))

for i, v := range results {

    listedDepartment[i] = v.(string)

}

如果您需要对其进行排序,只需对切片进行排序:


sort.Strings(listedDepartment)


查看完整回答
反对 回复 2022-06-21
  • 1 回答
  • 0 关注
  • 198 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信