当我使用祖先约束执行get()时,似乎我获得了该祖先键的所有实体以及它作为父级的所有祖先。在这种情况下,我使用祖先关系来表示同源树(所有节点都由同一种类表示;每个级别都立即一致)。我使用的所有ID都是全局唯一的,并且我在每个实体上都写了父ID(除了它在祖先路径中)。由于祖先检索返回了太多数据(所有级别和以下级别,而不仅仅是直接级别;文档没有提到这个和其他一些怪癖),我需要添加一个过滤器来确保我刚刚恢复到当前水平。因此,问题是执行ancestor().filter()与仅执行filter()的效率是否存在差异,因为它们都产生相同的结果对我来说。谢谢。 最佳答案
当我使用祖先约束执行get()时,似乎我获得了该祖先键的所有实体以及它作为父级的所有祖先。在这种情况下,我使用祖先关系来表示同源树(所有节点都由同一种类表示;每个级别都立即一致)。我使用的所有ID都是全局唯一的,并且我在每个实体上都写了父ID(除了它在祖先路径中)。由于祖先检索返回了太多数据(所有级别和以下级别,而不仅仅是直接级别;文档没有提到这个和其他一些怪癖),我需要添加一个过滤器来确保我刚刚恢复到当前水平。因此,问题是执行ancestor().filter()与仅执行filter()的效率是否存在差异,因为它们都产生相同的结果对我来说。谢谢。 最佳答案
我正在编译我想上传并在谷歌云平台上运行的GO应用程序。我正在导入appengine/datastore包,但遇到了包vendor的问题。因为我想提供稳定的构建,所以我希望在我的源代码树中提供尽可能多的依赖项,但是当我提供appengine/datastore时,我遇到了运行gcloudappdeploy:OperationError:错误响应:[9]部署包含无法编译的文件:编译失败:2017/09/1901:07:31go-app-builder:解析输入失败:包“vendor/google.golang.org/appengine/search”无法导入内部包“google.gola
我正在编译我想上传并在谷歌云平台上运行的GO应用程序。我正在导入appengine/datastore包,但遇到了包vendor的问题。因为我想提供稳定的构建,所以我希望在我的源代码树中提供尽可能多的依赖项,但是当我提供appengine/datastore时,我遇到了运行gcloudappdeploy:OperationError:错误响应:[9]部署包含无法编译的文件:编译失败:2017/09/1901:07:31go-app-builder:解析输入失败:包“vendor/google.golang.org/appengine/search”无法导入内部包“google.gola
我正在尝试对数据存储中的一组实体执行筛选查询,但我正在尝试使用相等运算符查询的实体字段属于[]byte类型,我不知道appengine是否数据存储可以执行此比较这是我的实体:typeDatastruct{Idint64`json:"id"`Versionint32`json:"-"`HMAC[]byte`json:"-"`Statusstring`json:"status"`}这是我的查询逻辑func(view*DataView)GetDataByHMAC(hmac[]byte)(Data,error){view_key:=datastore.NewKey(view.context,"
我正在尝试对数据存储中的一组实体执行筛选查询,但我正在尝试使用相等运算符查询的实体字段属于[]byte类型,我不知道appengine是否数据存储可以执行此比较这是我的实体:typeDatastruct{Idint64`json:"id"`Versionint32`json:"-"`HMAC[]byte`json:"-"`Statusstring`json:"status"`}这是我的查询逻辑func(view*DataView)GetDataByHMAC(hmac[]byte)(Data,error){view_key:=datastore.NewKey(view.context,"
如果我有appengine.Context而不是,我不知道如何调用cloud.WithContext和google.DefaultClient>上下文。上下文。有(旧的)“appengine”和(新的)“google.golang.org/appengine”包。第一个带来自定义appengine.Context而第二个带来来自"golang.org/x/net/context"的context.Context/p>整个google.golang.org/cloud只需要context.Context。我很乐意转向使用新的"google.golang.org/appengine",但我
如果我有appengine.Context而不是,我不知道如何调用cloud.WithContext和google.DefaultClient>上下文。上下文。有(旧的)“appengine”和(新的)“google.golang.org/appengine”包。第一个带来自定义appengine.Context而第二个带来来自"golang.org/x/net/context"的context.Context/p>整个google.golang.org/cloud只需要context.Context。我很乐意转向使用新的"google.golang.org/appengine",但我
我有一个用Go编写的AppEngine应用程序,我正在努力改进我的测试。我需要运行的部分测试是对同一对象的一系列创建、更新和删除查询。但是,鉴于数据存储最终是一致的(这些不是子对象),我目前无法使用time.Sleep(time.Second*5)为SDK中的模拟数据存储提供足够的时间为了传播的一致性。这会导致测试需要很长时间才能运行。如何在不重写我的代码以使用祖先查询的情况下为测试强制执行更像强一致性的东西? 最佳答案 查看dev_server参数。您会看到有一个用于设置一致性策略的选项。--datastore_consisten
我有一个用Go编写的AppEngine应用程序,我正在努力改进我的测试。我需要运行的部分测试是对同一对象的一系列创建、更新和删除查询。但是,鉴于数据存储最终是一致的(这些不是子对象),我目前无法使用time.Sleep(time.Second*5)为SDK中的模拟数据存储提供足够的时间为了传播的一致性。这会导致测试需要很长时间才能运行。如何在不重写我的代码以使用祖先查询的情况下为测试强制执行更像强一致性的东西? 最佳答案 查看dev_server参数。您会看到有一个用于设置一致性策略的选项。--datastore_consisten