首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用go mongo驱动程序一起查找、区分和排序

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

Stack Overflow用户
提问于 2020-07-28 17:13:04
回答 1查看 458关注 0票数 1

我有一个使用"labix.org/v2/mgo"库创建的命令

代码语言:javascript
复制
err = getCollection.Find(bson.M{}).Sort("department").Distinct("department", &listedDepartment)

这工作得很好。但是现在我转到了官方的golang mongo-driver "go.mongodb.org/mongo-driver/mongo",我想在那个库中运行这个命令,但是没有直接的函数可以用来查找,然后排序,然后是Distinct。如何使用mongo-driver实现此命令。变量listedDepartment的类型为[]string。请建议我知道解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-28 18:47:48

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

代码语言:javascript
复制
// Obtain collection:
c := client.Database("dbname").Collection("collname")

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

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

代码语言:javascript
复制
listedDepartment = make([]string, len(results))
for i, v := range results {
    listedDepartment[i] = v.(string)
}

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

代码语言:javascript
复制
sort.Strings(listedDepartment)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63130758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档