Key.from_path 是否命中数据存储?
-
22-07-2019 - |
题
我有一个要大量获取的关键名称列表(密钥名称存储在附加到实体的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 对象存储在列表属性中,因为我也为用户提供了 跨 StringListPropererties 的友好查询。
解决方案
挖掘装置和在另一组问题后,事实证明:
键完全由该应用确定的 ID和路径,所以没有必要 访问数据存储这一点。 - 尼克约翰逊
或者你也可以使用db.Key的List
其他提示
您传递给的参数 Key.from_path()
包含构建唯一密钥所需的所有信息,因此不需要它访问数据存储。
数据存储区中的每个实体都有一个唯一标识它的键。该密钥由以下组件组成:
- 实体的类型,出于数据存储查询的目的对其进行分类
- 单个实体的标识符,可以是
- 键名字符串
- 整数 ID
- 在数据存储层次结构中定位实体的可选祖先路径
来源: https://developers.google.com/appengine/docs/python/datastore/entities
不隶属于 StackOverflow