在 Google App Engine 数据存储区中搜索带有前缀名称的实体
问题:
是吗从数据存储中检索特定字段以给定字符串开头的实体是否可行?尽管尝试了以下查询,但我无法获得所需的结果:
q = datastore.NewQuery("Places").Filter("Name >", "a")
答案:
数据存储中确实支持基于字段前缀查询实体,但它需要两个不等式过滤器的结合。
例如,要检索名称以“li”开头的地点,查询应指定名称字段大于(或等于)“li”并且小于“lj”。这是因为“lj”是按字典顺序排列的后续前缀。
在 GQL 中,此查询将显示为:
SELECT * FROM Places WHERE Name > 'li' AND Name < 'lj'
在 Go 代码中,查询采用以下形式:
q = datastore.NewQuery("Places").Filter("Name >", "li").Filter("Name <", "lj")
此查询将生成名称如下的地点:
liam lisotto lizst
但是,它将排除类似以下的名称:
abc ljoi lj qwerty
请注意,大写字母和小写字母具有不同的字典顺序订单。因此,“List”在“li”之前,而“list”在“li”之后。
以上是是否可以在 App Engine 数据存储区中查询名称与前缀匹配的实体?的详细内容。更多信息请关注PHP中文网其他相关文章!