1

我正在使用 gcloud cli 工具开发一个项目。我正在使用 Python + Flask 来开发应用程序。我的主要参考点是Google Datastore 文档以及这个 How-to 教程指南

我的数据存储中有一些实体,这些实体有一些属性。实体在应用程序中创建,密钥设置为默认密钥(也称为不完整密钥)。

我可以访问实体。并且使用投影,我还可以访问每个实体的属性。但是,有没有办法只从实体中提取密钥?例子:

>>> print(list(user_query.fetch()))
[<Entity('User', 5097358505279488) {...}>]

当我想访问属性时,这可以正常工作。但是,我无法访问密钥509..。我也试过:

>>> for user in user_query.fetch():
       print(user.key)
       ...
>>> <Key('User', 5097358505279488), project=...>

虽然它返回整个 Key 对象,但我找不到仅提取密钥的方法。我已经搜索了解决方案的文档,但它没有返回任何内容。我想知道这是否可能在这一点上。

4

3 回答 3

1

听起来您正在尝试获取 key.id 的投影。不幸的是,这是不可能的。您可以执行返回键的查询,然后可以使用列表推导来获取所需的数据,例如[key.id_or_name for key in key_only_query.fetch_page()]

于 2021-04-03T15:53:52.297 回答
1

你用它来获取 id

print(user.key.id)
于 2021-05-28T05:52:06.703 回答
0

您可以调用数据存储实体上的 .id 属性来获取作为整数值的键。

for user in user_query.fetch():

print(user.id)

于 2021-09-22T15:06:41.443 回答