gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 21:09:34 25 4
gpt4 key购买 nike

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

err = getCollection.Find(bson.M{}).Sort("department").Distinct("department", &listedDepartment)
这很好。但是现在我要使用官方的golang mongo-driver "go.mongodb.org/mongo-driver/mongo",我想在该库中运行此命令,但是没有直接函数可以与Find,Sort,Distinct一起使用。我如何使用此mongo-driver实现此命令。变量 listedDepartment[]string的类型。请建议我知道解决方案。

最佳答案

您可以使用 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)
}
如果需要对它进行排序,只需对 slice 进行排序:
sort.Strings(listedDepartment)

关于mongodb - 如何使用go mongo驱动程序一起执行查找,区分和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63130758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com