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

我想搜索名称以特定字符串开头的所有实体,这在 Datastore 中是否可行?

我试过这个:

q = datastore.NewQuery("Places").Filter("Name > ", "a")

但它不起作用。

如果这是不可能的,您可以向我建议什么替代解决方案?大查询?App Engine 上的 BigTable 或其他服务?


青春有我
浏览 120回答 1
1回答

撒科打诨

这是可能的,但结合了 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名称所在的位置,例如:liamlisottolizst但会排除以下名称:abcljoiljqwerty需要注意的一件事:大小写字母在字典顺序上是不同的,例如"List"小于"li"(即使"list"大于"li")!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go