我想搜索名称以特定字符串开头的所有实体,这在 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")!
- 1 回答
- 0 关注
- 119 浏览
添加回答
举报
0/150
提交
取消