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

标签 go bson mgo

我希望能够将从 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)

关于go - 如何在 "pretty"文本中查看mgo的bson.Raw,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48913850/

相关文章:

c# - C# 中的 MongoDb 投影

mongodb - 如何在 Go 中使用 $indexOfArray?

c# - mongodb c#如何使用BSON文档

mongodb - 未定义 : revel. Revel 应用程序启动时的 LoadConfig

mongodb - mgo:如何更新文档中的特定数组

go - 如何在模板中转换给定的代码

go - 为什么一个空 slice 有 24 个字节?

go - 构建Android时在golang中读取Makefile变量

go - 如何在Go-lang中发送没有URL编码的查询值?

c# - 使用 mongoDB c# 驱动程序将对象序列化为字符串值(就像在其上调用 ToString() 一样)