python - 如何测试 Appengine 中 ReferenceProperty 的有效性?

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

我目前正在测试我编写的一个小应用程序。我在确保数据存储中的数据一致方面不够小心,现在我遇到一个问题,即我有一些引用不再存在的对象的记录。更具体地说,我有一些具有已分配值的 ReferenceProperty 的对象;引用的对象已被删除,但引用仍然存在。

我想在我的代码中添加一些检查,以确保引用的对象存在并相应地执行操作。 (当然,我还需要清理我的数据)。

一种方法是尝试 get() 它;但是,这可能应该检索整个对象 - 我想要一种仅测试对象是否存在的方法,理想情况下,只会导致数据存储上关键操作的成本,而不是完整的实体读取。

所以,我的问题如下:是否有一个简单的机制来测试给定的 ReferenceProperty 是否有效,仅涉及关键访问操作(而不是完整的实体获取操作)?

最佳答案

这将测试 key 是否存在而不返回实体:

db.Query(keys_only=True).filter('__key__ =', test_key).count(1) == 1

我不确定它在计算上是否比获取实体更便宜。

关于python - 如何测试 Appengine 中 ReferenceProperty 的有效性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7636806/

相关文章:

python - 在 python 变量中获取 wget 输出

java - Java 客户端和 Python 服务器之间的 Socket 消息传递

python - 是否可以在 flask 应用程序中进行异步数据库调用?

node.js - 有没有办法将nodejs连接到本地Google数据存储

python - 重复的 ndb.StructuredProperty 的验证器未能触发

python - 高效的字符串后缀检测

javascript - 如何响应 XMLHttpRequest

google-app-engine - 安装appengine sdk后Golang未定义google.JWTAccessTokenSourceFromJSON

google-app-engine - gcloud 应用程序部署 '--appyaml' 标志似乎不起作用

java - 在 Java GAE 中使用数据存储存储关系的最佳实践