登录
首页 >  Golang >  Go问答

使用 golang 从MongoDB检索JSON数据

来源:stackoverflow

时间:2024-03-22 10:03:33 356浏览 收藏

在 Go 中从 MongoDB 检索 JSON 数据时,选择除了 `_id` 字段之外的所有字段会导致返回仅包含其余字段的文档。为了正确检索 JSON 数据,可以使用自定义结构或使用 `bson.M` 类型来存储返回的文档,然后将其编码为 JSON 格式。

问题内容

我正在尝试使用 golang 中的以下代码从 mongo 获取一段 json 文本

var a []string
err := col..Find(nil).Select(bson.M{"_id": 0}).All(&a)

我收到错误 unsupported document type for unmarshalling: string

我可以知道正确的方法吗?


解决方案


当您选择除 _id 之外的所有字段时,返回的将是仅包含其余字段的文档。你可以这样做:

type fielddoc struct {
  field string `bson:"name"`
}
var a []fielddoc
err := col.find(nil).select(bson.m{"_id": 0}).all(&a)

如果您不知道底层结构:

var a []bson.m
err := col.find(nil).select(bson.m{"_id": 0}).all(&a)

这应该为您提供编码为 bson 对象的文档。这是一个 map[string]interface{},因此如果您想要 json 输出,您应该能够将其编组为 json:

jsonDocs, err:=json.Marshal(a)

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《使用 golang 从MongoDB检索JSON数据》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>