Golang Go语言中如何修改 bson.Raw
Golang Go语言中如何修改 bson.Raw
testM := bson.M{
“dict”: “v1”,
}
var raw bson.Raw
tmp, _ := bson.Marshal(testM)
bson.Unmarshal(tmp, &raw)
对 raw 进行修改,新增 key: document 为
bsonM{"dict":"v1", "key": document}
或者修改为
bson.M{"dict": "v2"}
又或者删除 key 为
bsonM{}
我没找到相关的文章,godoc 也看着没头绪
求问有啥办法可以做到对 bson.Raw 的增删改
更多关于Golang Go语言中如何修改 bson.Raw的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
最近在封装 mongodb 相关的库,这个包 go.mongodb.org/[email protected]/x/bsonx/bsoncore/document.go 里有你想要的东西
更多关于Golang Go语言中如何修改 bson.Raw的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
在Golang中,bson.Raw
是 MongoDB BSON 库中的一个类型,用于表示原始的 BSON 数据。如果你想修改 bson.Raw
中的数据,你需要先将其解码(unmarshal)到一个具体的结构体或映射(map)中,进行所需的修改,然后再将其编码(marshal)回 BSON。
以下是一个简单的示例,展示了如何修改 bson.Raw
数据:
- 定义数据结构:首先,定义一个与 BSON 数据匹配的结构体。
type MyData struct {
Field1 string `bson:"field1"`
Field2 int `bson:"field2"`
}
- 解码和修改:
import (
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
"log"
)
func modifyBSON(raw bson.Raw) (bson.Raw, error) {
var data MyData
err := bson.Unmarshal(raw, &data)
if err != nil {
return nil, err
}
// 修改数据
data.Field1 = "NewValue"
// 编码回 BSON
modifiedRaw, err := bson.Marshal(data)
if err != nil {
return nil, err
}
return primitive.Raw(modifiedRaw), nil
}
注意,bson.Raw
和 primitive.Raw
是类型别名,可以互换使用。这个例子展示了如何将 bson.Raw
转换为 Go 的结构体进行修改,然后再转换回 bson.Raw
。这是处理 BSON 数据时常见的模式。