本文整理汇总了Golang中github.com/waterlink/rebecca.Context.All方法的典型用法代码示例。如果您正苦于以下问题:Golang Context.All方法的具体用法?Golang Context.All怎么用?Golang Context.All使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/waterlink/rebecca.Context
的用法示例。
在下文中一共展示了Context.All方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: ExampleContext_All
func ExampleContext_All() {
type Person struct {
// ...
}
ctx := rebecca.Context{Limit: 20, Skip: 40}
people := []Person{}
if err := ctx.All(&people); err != nil {
panic(err)
}
// At this point people contains 20 Person records starting from 41th from
// the database.
fmt.Print(people)
}
示例2: TestGroup
func TestGroup(t *testing.T) {
setup(t)
p1 := &Person{Name: "John", Age: 9}
p2 := &Person{Name: "Sarah", Age: 27}
p3 := &Person{Name: "Bruce", Age: 27}
p4 := &Person{Name: "James", Age: 11}
p5 := &Person{Name: "Monika", Age: 11}
p6 := &Person{Name: "Peter", Age: 21}
p7 := &Person{Name: "Brad", Age: 11}
people := []*Person{p1, p2, p3, p4, p5, p6, p7}
for _, p := range people {
if err := rebecca.Save(p); err != nil {
t.Fatal(err)
}
}
type PersonByAge struct {
rebecca.ModelMetadata `tablename:"people"`
Age int `rebecca:"age" rebecca_primary:"true"`
Count int `rebecca:"count(distinct(id))"`
}
ctx := rebecca.Context{Group: "age"}
expected := []PersonByAge{
{Age: 9, Count: 1},
{Age: 11, Count: 3},
{Age: 21, Count: 1},
{Age: 27, Count: 2},
}
actual := []PersonByAge{}
if err := ctx.All(&actual); err != nil {
t.Fatal(err)
}
if !reflect.DeepEqual(actual, expected) {
t.Errorf("Expected %+v to equal %+v", actual, expected)
}
}
示例3: ExampleModelMetadata
func ExampleModelMetadata() {
type Person struct {
// ModelMetadata allows to provide table name for the model
rebecca.ModelMetadata `tablename:"people"`
ID int `rebecca:"id" rebecca_primary:"true"`
Name string `rebecca:"name"`
Age int `rebecca:"age"`
}
type PostsOfPerson struct {
// Additionally you can have any expression as a table name, that your
// driver will allow, for example, simple join:
rebecca.ModelMetadata `tablename:"people JOIN posts ON posts.author_id = people.id"`
// .. fields are defined here ..
}
type PersonCountByAge struct {
rebecca.ModelMetadata `tablename:"people"`
// Additionally you can use any expressions as a database mapping for
// fields, that your driver will allow, for example,
// count(distinct(field_name)):
Count int `rebecca:"count(distinct(id))"`
Age int `rebecca:"age"`
}
// PersonCountByAge is useful, because it can be nicely used with
// aggregation:
byAge := []PersonCountByAge{}
ctx := rebecca.Context{Group: "age"}
if err := ctx.All(&byAge); err != nil {
panic(err)
}
// At this point byAge contains counts of people per each distinct age.
// Ordering depends on your chosen driver and database.
fmt.Print(byAge)
}