为了账号安全,请及时绑定邮箱和手机立即绑定

在 Google App Engine Datastore 中搜索以前缀开头的字符串

在 Google App Engine Datastore 中搜索以前缀开头的字符串

Go
青春有我 2022-03-07 19:37:00
我想搜索名称以特定字符串开头的所有实体,这在 Datastore 中是否可行?我试过这个:q = datastore.NewQuery("Places").Filter("Name > ", "a")但它不起作用。如果这是不可能的,您可以向我建议什么替代解决方案?大查询?App Engine 上的 BigTable 或其他服务?
查看完整描述

1 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

这是可能的,但结合了 2 个不等式过滤器。


假设您要列出Places具有"li"前缀的列表。这可以用一个查询来描述,该查询列出Places了大于(或等于)"li" 和小于前缀的查询,该前缀是"li"按字典顺序排列的下一个字符串:"lj"。


这是 GQL 的样子:


SELECT * FROM Places WHERE Name > 'li' AND Name < 'lj'

在 Go 中编码如下所示:


q = datastore.NewQuery("Places").Filter("Name >", "li").Filter("Name <", "lj")

这将列出Places名称所在的位置,例如:


liam

lisotto

lizst

但会排除以下名称:


abc

ljoi

lj

qwerty

需要注意的一件事:大小写字母在字典顺序上是不同的,例如"List"小于"li"(即使"list"大于"li")!


查看完整回答
反对 回复 2022-03-07
  • 1 回答
  • 0 关注
  • 119 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信