使用 golang 从 mongo 获取一段 json 字符串

Get a slice of json string from mongo using golang

我正在尝试使用 golang

中的以下代码从 mongo 中获取一段 json 文本
var a []string
err := col..Find(nil).Select(bson.M{"_id": 0}).All(&a)

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

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

当您 select 除 _id 之外的所有内容时, return 将是一个仅包含其余字段的文档。你可以这样做:

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)