我有一个要大量获取的关键名称列表(密钥名称存储在附加到实体的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() 包含构建唯一密钥所需的所有信息,因此不需要它访问数据存储。

数据存储区中的每个实体都有一个唯一标识它的键。该密钥由以下组件组成:

  1. 实体的类型,出于数据存储查询的目的对其进行分类
  2. 单个实体的标识符,可以是
    • 键名字符串
    • 整数 ID
  3. 在数据存储层次结构中定位实体的可选祖先路径

来源: https://developers.google.com/appengine/docs/python/datastore/entities

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top