本文整理汇总了Golang中github.com/gourd/kit/store.Conds.GetRel方法的典型用法代码示例。如果您正苦于以下问题:Golang Conds.GetRel方法的具体用法?Golang Conds.GetRel怎么用?Golang Conds.GetRel使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/gourd/kit/store.Conds
的用法示例。
在下文中一共展示了Conds.GetRel方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Conds
// Conds Translate the store.Conds interface into
// upperio flavor conditions representation
func Conds(cs store.Conds) interface{} {
conds := cs.GetAll()
out := make([]interface{}, 0)
// accumulate relations
for _, cond := range conds {
if cond.Prop == "" {
// if no prop, assume to be prop
if v, ok := cond.Value.(string); ok {
out = append(out, db.Raw{v})
} else if v, ok := cond.Value.(store.Conds); ok {
leaf := Conds(v)
out = append(out, leaf)
} else if v, ok := cond.Value.(db.Raw); ok {
out = append(out, v)
} else if v, ok := cond.Value.(db.And); ok {
out = append(out, v)
} else if v, ok := cond.Value.(db.Or); ok {
out = append(out, v)
}
} else {
out = append(out, db.Cond{cond.Prop: cond.Value})
}
}
if len(out) == 0 {
return nil // nil for empty query, searchs everything
}
// determine relations
if cs.GetRel() == store.And {
return db.And(out)
} else if cs.GetRel() == store.Or {
return db.Or(out)
}
panic(fmt.Sprintf("Incorrect value of Rel in %#v", cs))
return nil
}