go get github.com/morteza-r/flexy
type User struct {
Id float64 `json:"id"`
Name string `json:"name"`
Family string `json:"family"`
Active bool `json:"active"`
Account Account `json:"account"`
}
type Account struct {
Name string `json:"name"`
Credit int64 `json:"credit"`
Tags []string `json:"tags"`
}
user := User{
Id: 1,
Name: "morteza",
Family: "rostami",
Active: false,
Account: Account{
Credit: 1200,
},
}
err := client.Query().
Table("users").
Model(&user).
Add()
if err != nil {
fmt.Println(err)
}
user := User{
Id: 1,
}
_, ok := client.Query().
Table("users").
Model(&user).
Exist()
fmt.Println(ok)
Only provided fields will update. In this example only active field will update to true and other fields will remain same.
user := User{
Id: 1,
Active: true,
}
err := client.Query().
Table("users").
Model(&user).
Update()
if err != nil {
fmt.Println(err)
}
fmt.Println(user)
The new doc will replace old one.
user := User{
Id: 1,
Name: "morteza",
Family: "rostami",
Active: false,
Account: Account{
Credit: 1200,
},
}
err := client.Query().
Table("users").
Model(&user).
Replace()
if err != nil {
fmt.Println(err)
}
user := User{
Id: 1,
}
err := client.Query().
Table("users").
Model(&user).
Get()
if err != nil {
fmt.Println(err)
}
fmt.Println(user)
var users []User
err := client.Query().
Table("users").
Model(&users).
Where("account.credit", "==", 1200).
OrderString("family").
Get()
if err != nil {
fmt.Println(err)
}
fmt.Println(users)
user := User{
Id: 1,
}
err := client.Query().
Table("users").
Model(&user).
Get()
if err != nil {
fmt.Println(err)
}