【问题标题】:google datastore - java - delete a property from all entities谷歌数据存储 - java - 从所有实体中删除一个属性
【发布时间】:2022-01-26 01:16:27
【问题描述】:

有没有办法使用 Java 从 Google Datastore 中的所有实体中删除属性?我希望它不再出现在 Google Cloud Console 中。

我尝试在所有实体中将属性设置为null,但这不起作用。查看实体列表时,它仍会显示在 GCC 中。只是每个条目都是null

如何从我的实体中完全删除此属性?

编辑: 这是它在 GCC 中的样子。我想完全删除这个属性:

【问题讨论】:

  • 所提供的答案是否解决了您的问题?

标签: google-cloud-platform google-cloud-datastore


【解决方案1】:

not possible 使用单个查询或命令批量更新实体。您必须read each entity individually,删除您不再需要的字段(在内存中,在您读取实体之后),然后再次使用不包含您要删除的属性的新属性集update the entity

【讨论】:

  • 那么我如何在 Java 中做到这一点?我尝试读取每个实体,将属性设置为null,然后将这些实体保存回数据存储区。但该属性仍然存在,其值在 GCC 中显示为 null。例如,我不能像在 javascript 中那样将其设置为 undefined。有没有办法让我读取实体并将其保存回数据存储区,并使用该属性作为未设置或未定义之类的属性?
  • 我对我的问题进行了编辑。
  • 不要使用空值。 Null 是有效值,您不想在其中放置值。仅将您想要的属性放入 Map 中,并将其提供给新实体。很难看出您可能需要正确的课程,因为您没有显示任何代码。步骤是 1) 读取实体,2) 仅将所需的属性从中复制到新实体中,2) 写入新实体来代替第一个实体。或者使用一个加载了复制属性的实体构建器,以及你想要的属性 remove()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多