首页 >后端开发 >Golang >是否可以在 App Engine 数据存储区中查询名称与前缀匹配的实体?

是否可以在 App Engine 数据存储区中查询名称与前缀匹配的实体?

DDD
DDD原创
2024-10-24 07:08:021053浏览

Is it Possible to Query for Entities with Prefix-Matched Names in App Engine Datastore?

在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn