Переименуйте собственность с Gremlin в Azure Cosmos DB - PullRequest
1 голос
/ 27 мая 2019

Некоторая часть нашей кодовой базы изменилась, поэтому теперь она ожидает, что вершины, которые раньше имели свойство с именем «Sdg», теперь имеют свойство с именем «auseType »и с тем же значением вместо .... Короче говоря, переименование имущества.

В этот момент я уже довольно много пробовал, и ... Я немного удивлен, насколько сложно было выяснить, как искать график и делать переименование, когда это необходимо.

Самый близкий я пришел следующий запрос:

g.V().has('sdg').as('vertexWithOldProperty').property('causeType', value(select('vertexWithOldProperty').select('sdg')))

... Не работает из-за ошибки:

Ошибка компиляции запроса Gremlin: невозможно связать с методом 'value', с аргументами типа: (GraphTraversal) @ строка 1, столбец 68. Невозможно привязать к методу 'property' с аргументами типа: (String)

Идея состояла в том, чтобы пробежать по графику и запомнить каждую вершину, которая имела старое значение. Затем я добавил бы к ним новое свойство с тем же значением ... И для простоты / осуществимости я решил просто игнорировать старое значение вместо его удаления.

Может ли кто-нибудь помочь мне или направить меня в правильном направлении?

Спасибо!

1 Ответ

2 голосов
/ 27 мая 2019

Может быть, есть лучший способ, но я думаю, что это должно работать для вас:

g.V().has('sdg').property('causeType', values('sdg'))

А если вы хотите удалить старое свойство

g.V().has('sdg').property('causeType', values('sdg')).properties('sdg').drop()

...