CosmosDb Graph: переместить узел (и его ребра) в другой раздел? - PullRequest
0 голосов
/ 08 мая 2018

Я использую коллекцию секционированных графов CosmosDB. Есть ли простой способ «переместить» узел (и его исходящие ссылки) из одного раздела в другой? Можно ли это сделать атомарно?

Я пробовал это: (ключ раздела '/ tenantId')

//create the node
g.addV('testme').property('id','id123').property('tenantId','mytenant1')

//...create more nodes and edges...


//change node's partition key
g.V('id123').has('tenantId','mytenant1').property('tenantId','mytenant2')
// ^^^ fails:
// GraphRuntimeException ExceptionMessage :  
//   Gremlin Query Execution Error: 
//      Update Vertex Properties: The partition property cannot be updated

1 Ответ

0 голосов
/ 08 мая 2018

Как объясняет ошибка, значение ключа раздела не может быть обновлено. Это неизменное.

Однако, если вы удалите документ и добавите его с обновленным значением ключа раздела, это сработает. Имейте в виду, что любой код, который вы делаете для этого, должен иметь некоторую логику отката в случае сбоя новой вставки.

...