我正在尝试使用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))
}
执行完此命令后,我总是得到一个空数组。任何想法在此代码中是错误的吗?
答案 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)
。