仲間内でネタにするために作ったドキュメント指向の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" - 数値
123412.34
andor==!=<><=>=
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