批量编辑GAE数据存储区中的多个实体?

时间:2012-09-20 00:25:44

标签: python google-app-engine batch-file entity google-cloud-datastore

如何批量编辑实体?

在GAE的数据查看器中,我可以单击一个实体,然后手动输入并替换其任何值。但是,如何一次为多个(数千个)实体执行此操作?

我只想找到每个实体在其值中包含特定字符串并将其替换为另一个实体。

我在GAE的仪表板/数据查看器中没有看到任何控件。或者也许可以在应用程序中完成此操作?它在python中,如果这有所不同......

2 个答案:

答案 0 :(得分:1)

查看remote API,它可以让您在舒适的SDK中与数据存储区进行交互。你可以这样做:

q = MyModel.all()
for entity in q:
    # Do your search-and-replace operation on entity

有关性能和一次可以获取的实体数量的注意事项,请阅读本文。

答案 1 :(得分:1)

您无法在普通SQL服务器中批量编辑实体。可能的解决方案:

  1. 编写自己的迁移方法,如果没有太多实体(数千个),请自行调用。
  2. MapReduce,可以并行工作。
  3. 使用远程API,如其他答案中所述。