仲間内でネタにするために作ったドキュメント指向のDB
import (
pigimongo "github.com/ikasoba/pigimongo-db/core"
)
db, err := pigimongo.NewDatabase(":memory:")
if err != nil {
panic(err)
}
NewDatabase
の第一引数は":memory:"
または、任意のファイル名が使用できます。
type Hoge struct {
Content string
}
err := db.Add(Hoge{ "ふが" })
if err != nil {
panic(err)
}
type Hoge struct {
Content string
}
hoge := &Hoge{}
err := db.Find(hoge, `Content = "ふが"`)
if err != nil {
panic(err)
}
// プレースホルダーも使えます
hoge = &Hoge{}
err = db.Find(hoge, `Content == ?`, "ふが")
if err != nil {
panic(err)
}
type Hoge struct {
Content string
}
err := db.Update(Hoge{ "ぴよ" }, `Content == "ふが"`)
if err != nil {
panic(err)
}
// プレースホルダーも使えます
err = db.Update(Hoge{ "ぴよ" }, `Content == ?`, "ふが")
if err != nil {
panic(err)
}
err := db.Remove(`Content == "ぴよ"`)
if err != nil {
panic(err)
}
// プレースホルダーも使えます
err = db.Remove(`Content == ?`, "ふが")
if err != nil {
panic(err)
}
- 文字列
"hoge"
"hoge\nfuga"
- 数値
1234
12.34
and
or
==
!=
<
>
<=
>=
type Hoge struct {
// 内部で自動的に `Id_` というキー名でxidで生成されたidが付与される
Id_ string
Content string
}
err := db.Add(Hoge{ Content: "ぴよ" })
if err != nil {
panic(err)
}
hoge := &Hoge{}
err = db.Find(hoge, `Content = "ぴよ"`)
if err != nil {
panic(err)
}
log.Println(hoge.Id_) // ckt3oe822smmhr7c40eg