gpt4 book ai didi

mongodb - 如何在没有规范的扩展JSON添加的情况下获取DecodeBytes()输出

转载 作者:行者123 更新时间:2023-12-01 22:27:58 27 4
gpt4 key购买 nike

我使用DecodeBytes()函数通过Go的mongo-driver从mongoDB获取数据(因为数据的结构可能会有所不同)。
我的问题是,其中一个值是int / double(而不是字符串)时。
在这种情况下,它添加会添加一些规范的扩展JSON,例如3"$numberDouble": "3.0"

如何删除规范扩展JSON的那些附加内容?

func (m *Mongoclient) Find(collection string, filter interface{}) string {
findResult := m.Db.Collection(collection).FindOne(m.Ctx, filter)
if findResult.Err() != nil {
fmt.Println(findResult.Err().Error())
return ""
}
db, err := findResult.DecodeBytes()
if err != nil {
fmt.Println(err.Error())
return ""
}
return db.String()
}

最佳答案

解决方案是使用Decode函数来bson.M,而不是json.Marshal:

    var document bson.M
err := findResult.Decode(&document)
if err != nil {
fmt.Println(err.Error())
return ""
}
resBytes, err := json.Marshal(document)
if err != nil {
fmt.Println(err)
return ""
}
return string(resBytes)

关于mongodb - 如何在没有规范的扩展JSON添加的情况下获取DecodeBytes()输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58694500/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com