我有一个要批量提取的密钥名称列表 (键名存储在附加到实体的StringListProperty中)。 我的总体计划是:
usernames = userrefInstance.users # A collection of strings on another
model.
keys = [Key.from_path('User', key_name) for username in usernames]
users = db.get(keys)
我的问题是Key.from_path命中数据存储区吗?我想成为 尽可能快,如果Key.from_path命中我需要工作的数据存储 另一种存储密钥集合的方法 - 我不是特别想要 将Key对象存储在list属性中,因为我也提供了用户 StringListPropererties中的友好查询。
答案 0 :(得分:3)
在对另一组进行挖掘和提问后,结果证明:
键完全由应用决定 ID和路径,所以没有必要 访问数据存储区。 - 尼克约翰逊
或者您也可以使用db.Key列表
答案 1 :(得分:0)
传递给Key.from_path()
的参数包含构建唯一密钥所需的所有信息,因此无需访问数据存储区。
数据存储区中的每个实体都有一个唯一标识它的密钥。 密钥由以下组件组成:
- 实体的类型,为数据存储区查询的目的对其进行分类
- 单个实体的标识符,可以是其中之一
- 密钥名称字符串
- 整数数字ID
- 在数据存储区层次结构中定位实体的可选祖先路径
醇>
来源:https://developers.google.com/appengine/docs/python/datastore/entities