如何在 "pretty" 文本中查看 mgo 的 bson.Raw

How to view mgo's bson.Raw in "pretty" text

我希望能够将从 golang 的 mgo 库获取的原始 bson 数据输出到控制台以进行调试,但一直无法找到如何完成此操作。

对于 JSON 我是这样做的:

    formatedData, err := json.MarshalIndent(rawData, "", "   ")
        if err != nil {
        log.Print(err)
    }
    fmt.Printf("%s", formatedData)

BSON 是否有等效的方法?

bson 是一种二进制格式,它只是一个字节片段。它本身是人类不可读的,因为这种格式包含有关字段长度等的信息,并且所有数据都非常紧凑。它已经被编码,所以不需要编组它。

你可以原样输出,但是会读不出来

在此处查看 bson 规范:http://bsonspec.org/#/specification

如果您想查看 bson 的所有内容,可以将其解组到地图中:

m := map[string]interface{}{}
rawData.Unmarshal(&m)
fmt.Printf("%+v\n", m)