如何在“漂亮”文本中查看mgo的bson.Raw

时间:2018-02-21 19:21:38

标签: go bson mgo

我希望能够将我从golang的mgo库获取的原始bson数据输出到控制台以进行调试,但是无法找到如何实现此目的。

使用JSON我这样做:

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

是否有与BSON相同的方法?

1 个答案:

答案 0 :(得分:1)

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

您可以按原样输出,但它不可读。

请参阅此处的bson规范:http://bsonspec.org/#/specification

如果你想看到bson的所有内容,你可以将它解组成地图:

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