简介:
搜索名称字段开头的实体具有特定字符串是数据查询中的常见需求。 Google App Engine Datastore 提供了一种实现此目的的方法,但可能不会立即显现出来。本文演示了如何构建此类查询并探索其他 App Engine 服务中的替代解决方案。
问题陈述:
“我尝试检索名称开头的地点使用过滤器查询的特定字符串,但它不起作用。数据存储中是否支持此功能,如果不支持,有哪些可能的解决方法?”
查询构造:
前缀查询背后的直觉是过滤名称大于前缀字符串的实体。然而,仅使用一个不等式过滤器(例如,名称 >“a”)将会失败,因为它排除了名称以前缀开头的所有实体。
解决方案在于组合两个不等式过滤器。我们需要指定名称既大于或等于前缀字符串又小于下一个字典字符串。
示例查询:
让我们检索以下地点以“li”开头:
q = datastore.NewQuery("Places").Filter("Name >=", "li").Filter("Name <", "lj")
解释:
替代解决方案:
如果此方法不能满足特定要求,App Engine 会提供其他高级查询服务:
以上是如何在 App Engine 数据存储区中查找带有前缀的字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!