我们如何将原始M转换为字符串?
package main
import (
"go.mongodb.org/mongo-driver/bson"
)
func main() {
a := bson.M{ // primitive.M
"test": bson.M{
"fielda": "AAA",
"fieldb": "BBB",
},
}
}
我正在使用它来记录失败的mongodb文档。我能够使用
logrus.Error
打印该值,我想将此转换复制到字符串,然后将其记录到文件中。// cursor = "go.mongodb.org/mongo-driver/mongo" *mongo.Cursor
// logrus = "github.com/sirupsen/logrus"
//...
var temp bson.M
_ := cursor.Decode(&temp) // assume this is not returning error, it will log the map
logrus.Error("value: ", temp) // value: map[__v:0 _id:ObjectID(\"5c8ef7df7216e9935ecd7859\") field1:test]
最佳答案
最简单的解决方案是像这样使用 fmt.Sprint()
:
a := bson.M{
"_id": primitive.NewObjectID(),
"test": bson.M{
"fielda": "AAA",
"fieldb": "BBB",
},
}
s := fmt.Sprint(a)
fmt.Println(s)
这将输出(在Go Playground上尝试):map[_id:ObjectID("4af9f07018f18fbf63f00366") test:map[fielda:AAA fieldb:BBB]]
关于string - 如何转换Primitive.M映射到[string] string然后映射到string?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63629602/