如何使用谷歌云数据存储从实体中删除属性/值

时间:2017-01-31 15:32:07

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

我正在学习google.cloud.datastore,并且想知道如何从entity中删除属性及其值。此外,是否可以从特定kind的所有实体中删除特定属性或属性列表?

我的理解是datastore以行方式(entities)存储/操作数据?

欢呼声

1 个答案:

答案 0 :(得分:3)

您的理解是正确的,所有数据存储区写入操作确实在实体级别发生。因此,为了修改您要检索实体的一个或一部分属性,修改属性(或删除它,如果要删除属性)设置并保存实体。

具体细节取决于所使用的语言和库。来自Updating an entity

  

update现有实体,请修改实体的属性   并使用密钥存储它:

     

PYTHON

with client.transaction():
    key = client.key('Task', 'sample_task')
    task = client.get(key)

    task['done'] = True

    client.put(task)
     

对象数据会覆盖现有实体。整个对象是   发送到Cloud Datastore。如果实体不存在,则更新将   失败。如果要更新或创建实体,请使用upsert   如前所述。

     

注意:要删除属性,请从实体中删除该属性,然后保存该实体。

在上面的代码段中,删除done实体的task属性(如果已存在)将按以下方式执行:

with client.transaction():
    key = client.key('Task', 'sample_task')
    task = client.get(key)

    if 'done' in task:
        del task['done']
        client.put(task)