gpt4 book ai didi

mongodb - 打印 MongoDB 集合数据 - GoLang,结果不符合预期

转载 作者:数据小太阳 更新时间:2023-10-29 03:09:33 24 4
gpt4 key购买 nike

我在 Docker 容器中有 mongoDB,我可以很好地连接和更新数据库,我可以在 Compass 中看到结果。然而,当涉及到收集和打印结果时,它们并没有像我期望的那样打印出来。

这是我的代码片段:

db := client.Database("maccaption")
collection := client.Database("maccaption").Collection("JobBacklog")
res, err := collection.InsertOne(context.Background(), bson.M{"hello": "world"})
if err != nil {
log.Fatal(err)
}
result := struct {
Foo string
Bar string
}{}
filter := bson.D{{"hello", "world"}}
err = collection.FindOne(context.Background(), filter).Decode(&result)
if err != nil {
log.Fatal(err)
}
fmt.Println("Results", result)

我正在使用官方的 mongo-go-driver。并按照此处的示例 https://godoc.org/github.com/mongodb/mongo-go-driver/mongo

我知道数据库已连接,当我添加到数据库时我可以看到更新,然后当我运行代码时它会显示在 Compass 中,但是 collection.FindOne 返回 结果 {0},我希望它返回 hello: world

谁能帮我解决这个问题?谢谢!

最佳答案

您插入了一个文档,其中的字段 hello 的值为“world”。然后,您将尝试将该文档解压缩到一个包含字段 Foo 和 Bar 的结构中。它们都没有命名为 Hello,也没有 bson 标签,因此它不应该将您的 hello 字段解码到任何地方。如果您改为定义:

result := struct{
Hello string
}

它应该根据需要解码。

关于mongodb - 打印 MongoDB 集合数据 - GoLang,结果不符合预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54027394/

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