Как обновить сущности в пространстве имен в Datastore - PullRequest
0 голосов
/ 28 апреля 2019

У меня есть пространство имен, называемое "items", с кучей свойств в нем.Одно свойство называется «identLocation », а другое - «identState».

В любом месте, где «identLocation »равно нулю, я хочу скопировать в него значение для «identState».Затем я хочу удалить свойствоidentState.

Я использую клиент Python для хранилища данных.Как я могу получить и обновить каждую сущность в данном пространстве имен?

Редактировать: я выяснил, как извлечь сущности

from google.cloud import datastore
client = datastore.Client(project="myproject")
query = client.query(kind='spots', namespace='items')

print(list(query.fetch(10)))

Все еще не уверен, как обновить каждую сущность обратно в БДхотя

1 Ответ

0 голосов
/ 30 апреля 2019

GQL не поддерживает обновления. Cloud Datastore - это не реляционная база данных, это база данных документов, поэтому вместо того, чтобы думать о столбцах, вам следует подумать обо всем документе. В этом случае, похоже, вам следует рассмотреть возможность выполнения задания Cloud Dataflow над вашим видом items, чтобы добавить новое свойство incidentLocation.

Чтобы записать свои сущности обратно в базу данных, вы должны использовать put . Вам следует обратить внимание на использование пакетов для уменьшения количества отправляемых RPC, что должно повысить пропускную способность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...