如何获得收藏品的独特价值

时间:2019-05-11 20:11:47

标签: mongodb go

我正在尝试使用mongodb和Go,但无法获得集合中字段的不同值。

这是我的代码:

import (
    "context"
    "fmt"
    "log"
    "time"

    "go.mongodb.org/mongo-driver/mongo"
    "go.mongodb.org/mongo-driver/mongo/options"
)


type House struct {
    Ciudad string
}


func main() {

    client, err := mongo.NewClient(options.Client().ApplyURI("mongodb://localhost:27017"))
    if err != nil {
        log.Fatal(err)
    }
    ctx, _ := context.WithTimeout(context.Background(), 10*time.Second)
    err = client.Connect(ctx)

    collection := client.Database("test").Collection("houses")

    var house repository.House

    fmt.Println(collection.Distinct(ctx, "City", &house))

}

执行完此命令后,我总是得到一个空数组。任何想法在此代码中是错误的吗?

1 个答案:

答案 0 :(得分:1)

替换行

fmt.Println(collection.Distinct(ctx, "City", &house))

使用

fmt.Println(collection.Distinct(ctx, "City", bson.D{{}}))

第三个参数filter是BSON文档https://godoc.org/go.mongodb.org/mongo-driver/mongo#Collection.Distinct。请注意,Distinct()返回两个值,([]interface, error)