将嵌入式实体存储在数据存储中,忽略了嵌入的exclude_from_indexes



我正在尝试一个字段大于1500字节的嵌入式实体。根据文档,建议从索引中排除该字段,并且它应该允许1MB。

我将该字段添加到嵌入实体的exclude_from_indexes键中。当我尝试保存父实体时,它会告诉我字段大于1500字节。如果我独立保存嵌入的实体,它就可以工作。

是否在嵌入实体上忽略exclude_from_indexes?

client = datastore.Client(dataset_id=projectID)
record_key = client.key('Record', my_id)
record_entity = datastore.Entity(record_key)
embedded_key = client.key('Data', another_id)
embedded_entity = datastore.Entity(key=embedded_key,exclude_from_indexes=('big_field',))
embedded_entity['field1']='1234'
embedded_entity['big_field']='large string bigger than 1500bytes'
record_entity['RandomFieldName']=embedded_entity
client.put(record_entity)
#Error: gcloud.exceptions.BadRequest: 400 The value of property "big_field" is longer than 1500 bytes.
client.put(embedded_entity)
#No Error

这应该是一个有效的调用。您可以使用数据存储的API资源管理器自己尝试。

这可能是gcloud-python内部的一个错误,当您使用嵌入式实体时,它无法正确传递索引信息。

我看到你也在gcloud-python github上提交了一个bug,我建议你也这样做。

相关内容

  • 没有找到相关文章

最新更新