gorm中map怎么使用
时间: 2024-01-18 09:03:18 浏览: 98
map的使用
在gorm中使用map,可以将map作为结构体的一个字段,也可以将map作为表的一列。
1. 将map作为结构体的一个字段
示例代码:
```go
type User struct {
ID int
Name string
Info map[string]interface{} `gorm:"type:json"`
}
user := User{
ID: 1,
Name: "test",
Info: map[string]interface{}{
"age": 18,
"sex": "male",
},
}
// 创建记录
db.Create(&user)
// 查询记录
var result User
db.First(&result, "name = ?", "test")
// 修改记录
db.Model(&result).Updates(User{
Info: map[string]interface{}{
"age": 20,
},
})
```
在上面的示例中,我们将map[string]interface{}类型的字段Info设置为json类型,这样gorm就会自动将其序列化和反序列化,方便我们操作。
2. 将map作为表的一列
示例代码:
```go
type User struct {
ID int
Name string
Age int
Info map[string]interface{} `gorm:"column:info;type:json"`
}
// 创建表
db.AutoMigrate(&User{})
// 创建记录
db.Create(&User{
ID: 1,
Name: "test",
Age: 18,
Info: map[string]interface{}{
"age": 18,
"sex": "male",
},
})
// 查询记录
var result User
db.First(&result, "name = ?", "test")
// 修改记录
db.Model(&result).Updates(User{
Info: map[string]interface{}{
"age": 20,
},
})
```
在上面的示例中,我们将map[string]interface{}类型的字段Info设置为json类型,并将其作为表的一列,这样gorm就会将其自动序列化和反序列化,方便我们操作。
阅读全文