首页 > 后端开发 > Golang > 为什么我的 Google App Engine 数据存储区查询无法正确过滤?

为什么我的 Google App Engine 数据存储区查询无法正确过滤?

Susan Sarandon
发布: 2024-12-07 05:27:13
原创
469 人浏览过

Why Aren't My Google App Engine Datastore Queries Filtering Correctly?

过滤 GAE 查询

尝试过滤 GAE 查询时,如果过滤器无效,则会出现常见问题。要解决此问题,必须了解 Query.Filter() 方法的运行方式。

Query.Filter() 方法返回包含指定过滤器的派生查询。然而,将返回值分配给新变量以保留过滤器至关重要:

q = datastore.NewQuery("employee").Filter("Name =", "Andrew W")
登录后复制

或者,新的过滤可以在一行中实现:

q := datastore.NewQuery("employee").Filter("Name =", "Andrew W")
登录后复制

不带此步骤中,执行的查询将没有过滤器,从而检索所有保存的“员工”实体。因此,“Joe Citizen”可能是第一个打印的实体。

此外,必须考虑最终一致性。执行Put()操作后,由于使用了开发SDK,后续查询可能无法立即看到预期结果。为了缓解这个问题,可以在执行查询之前引入 time.Sleep():

time.Sleep(time.Second)
q := datastore.NewQuery("employee").Filter("Name =", "Andrew W")
登录后复制

在生产中,可以通过使用以下选项创建上下文来模拟强一致性:

c, err := aetest.NewContext(&aetest.Options{StronglyConsistentDatastore: true})
登录后复制

但是,需要注意的是,应使用祖先密钥来获得生产中的高度一致的结果。

以上是为什么我的 Google App Engine 数据存储区查询无法正确过滤?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板