minio修改图片上传-支持多图上传
mongo增加类型转换-将entity 转换为 bson.M
This commit is contained in:
@@ -496,3 +496,25 @@ func Count(ctx context.Context, filter bson.M, collection string) (count int64,
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// EntityToBSONM 将 *entity/entity 转换为 bson.M
|
||||
// 支持传入值类型或指针类型,返回 bson.M 和错误信息
|
||||
func EntityToBSONM(entity interface{}) (bson.M, error) {
|
||||
// 第一步:判断入参是否为 nil 或无效类型
|
||||
if entity == nil {
|
||||
return nil, fmt.Errorf("传入的 entity 实例为 nil")
|
||||
}
|
||||
// 第二步:将 entity 序列化为 BSON 字节流
|
||||
// bson.Marshal 支持值类型和指针类型,会自动解析结构体的 bson 标签
|
||||
bsonBytes, err := bson.Marshal(entity)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("entity 序列化为 BSON 字节流失败:%w", err)
|
||||
}
|
||||
// 第三步:将 BSON 字节流反序列化为 bson.M
|
||||
var bsonMap bson.M
|
||||
err = bson.Unmarshal(bsonBytes, &bsonMap)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("BSON 字节流反序列化为 bson.M 失败:%w", err)
|
||||
}
|
||||
return bsonMap, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user