Google cloud platform 仅更新Google云数据存储中实体的某些字段存在问题
我使用Python在Google云数据存储中创建了一个实体,如下所示:Google cloud platform 仅更新Google云数据存储中实体的某些字段存在问题,google-cloud-platform,nosql,google-cloud-datastore,database-update,Google Cloud Platform,Nosql,Google Cloud Datastore,Database Update,我使用Python在Google云数据存储中创建了一个实体,如下所示: client = datastore.Client() key = client.key('EntityType', id) entity = datastore.Entity(key=key) entity.update({'id': id, 'property_0': value_0, 'property_1': value_1,}) 在此之后,当我检查我的实体列表时,我有一个新实体,它有3个属性id、propert
client = datastore.Client()
key = client.key('EntityType', id)
entity = datastore.Entity(key=key)
entity.update({'id': id, 'property_0': value_0, 'property_1': value_1,})
在此之后,当我检查我的实体列表时,我有一个新实体,它有3个属性id
、property\u 0
和property\u 1
在另一个函数中,我只更新了property_2
,我是这样做的
key = client.key('EntityType', id)
entity = datastore.Entity(key=key)
entity.update({'property_1': new_value_1,})
当我在这之后检查实体列表时,我只看到实体的property_2
和新值
如何仅更新实体的
属性_1
,同时保留其他属性 您需要先取它
key = client.key('EntityType', id)
entity = client.get(key)
entity.update({'property_2': new_value_2,})
如果只想更新实体的某些属性,则不应使用
.update()
方法,此方法将删除未赋值的属性。相反,您可以手动设置要更改的属性的值,如以下示例所示:
# We first create the entity with the properties we want by using the update method.
client = datastore.Client()
key = client.key('EntityType', id)
entity = datastore.Entity(key=key)
entity.update({'property_0': 'a_string_value', 'property_1': 123})
client.put(entity)
# Then later we just fetch that entity and change the property we want.
client = datastore.Client()
key = client.key('EntityType', id)
entity = datastore.Entity(key=key)
entity['property_0'] = 'a_different_string_value'
client.put(entity)