按字段内容过滤包含字符串
Filter by field's content contains string
我有一些反对意见:
{
"name": "universite paris sorbonne" ,
"id": "548272c9-6615-4e93-aa15-9af0a830c9a2"
}
{
"name": "universite paris dauphine" ,
"id": "943234f3-6615-4e93-aa15-9af0a830c9a2"
}
{
"name": "universite sorbonne nouvelle" ,
"id": "24f477f3-6615-4e93-aa15-9af0a830c9a2"
}
如果我想要 select 每个名称中包含 paris dau
的对象,我该怎么做?
我已经试过了,但没用。
curs, _ = r.Table("places").
Filter(func(customer r.Term) interface{}{
return customer.Field('name').Downcase().Contains(func (custo r.Term) interface{}{
return custo.Match(".\*" + strings.ToLower('paris dau') + ".\*")
})
有什么建议吗?
我通过将数据转储到地图中稍微简化了您的问题,然后做了一个简单的正则表达式匹配,效果很好。
主要包
import (
"fmt"
"regexp"
)
func main() {
data := map[string]string{
"548272c9-6615-4e93-aa15-9af0a830c9a2": "universite paris sorbonne",
"943234f3-6615-4e93-aa15-9af0a830c9a2": "universite paris dauphine",
"24f477f3-6615-4e93-aa15-9af0a830c9a2": "universite sorbonne nouvelle",
}
var matches = make([]string, 0)
for _, value := range data {
matched, err := regexp.MatchString(".*paris dau.*", value)
if err == nil && matched {
matches = append(matches, value)
}
}
fmt.Printf("Matches: %v\n", matches)
}
我有一些反对意见:
{
"name": "universite paris sorbonne" ,
"id": "548272c9-6615-4e93-aa15-9af0a830c9a2"
}
{
"name": "universite paris dauphine" ,
"id": "943234f3-6615-4e93-aa15-9af0a830c9a2"
}
{
"name": "universite sorbonne nouvelle" ,
"id": "24f477f3-6615-4e93-aa15-9af0a830c9a2"
}
如果我想要 select 每个名称中包含 paris dau
的对象,我该怎么做?
我已经试过了,但没用。
curs, _ = r.Table("places").
Filter(func(customer r.Term) interface{}{
return customer.Field('name').Downcase().Contains(func (custo r.Term) interface{}{
return custo.Match(".\*" + strings.ToLower('paris dau') + ".\*")
})
有什么建议吗?
我通过将数据转储到地图中稍微简化了您的问题,然后做了一个简单的正则表达式匹配,效果很好。
主要包
import (
"fmt"
"regexp"
)
func main() {
data := map[string]string{
"548272c9-6615-4e93-aa15-9af0a830c9a2": "universite paris sorbonne",
"943234f3-6615-4e93-aa15-9af0a830c9a2": "universite paris dauphine",
"24f477f3-6615-4e93-aa15-9af0a830c9a2": "universite sorbonne nouvelle",
}
var matches = make([]string, 0)
for _, value := range data {
matched, err := regexp.MatchString(".*paris dau.*", value)
if err == nil && matched {
matches = append(matches, value)
}
}
fmt.Printf("Matches: %v\n", matches)
}