google-app-engine - 使用 golang 在 Appengine 数据存储区中强制执行关键唯一性的最佳方法(性能方面)是什么?

标签 google-app-engine go google-cloud-datastore

我想使用用户输入的字符串作为实体的唯一键。假设用户输入的 key 已存在于数据存储中,我想返回错误。由于golang数据存储区API只有Put,它也兼作Insert,那么强制唯一性约束的最佳方法是什么?

目前我正在尝试做...

Query(T).Filter("Key =", key)

…其中 key 是根据用户输入的值构造的,以测试是否存在重复项,但 2 个相同的键似乎使用相等 (=) 运算符返回 false在过滤器中,但在结果上调用 Equal 时为 true

如何通过Key查询?

最佳答案

您应该使用魔术常量 __key__ 按键进行过滤:

Query(T).Filter("__key__ =", key)

引用文献:

Java API constant values

Python documentation

我同意这有点晦涩且记录不足。

关于google-app-engine - 使用 golang 在 Appengine 数据存储区中强制执行关键唯一性的最佳方法(性能方面)是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20939981/

相关文章:

python - 在 GAE Python 中运行 XG 事务

java - 如何从谷歌应用程序引擎调用我的应用程序网址

go - 是否有工具可以检测我何时忘记关闭 goroutines?

python - 谷歌云数据存储: Counting all entities in a certain state

google-app-engine - GWT + Appengine + JPA + Eclipse + Maven:如何使它们协同工作

python - GAE : remote_api_shell. py 使用了错误的 Django 版本

docker - 如何请求由Go运行在Cloud Run上的gRPC服务器

go - 如何将exe文件作为窗口服务运行?

python - AppEngine : Can I write a Dynamic property (db. Expando) 在运行时选择的名称?

go - 如果数据类型从字符串更改为 bool 数据存储会引发错误