在Azure Cosmos DB中使用Gremlin重命名属性

时间:2019-05-27 00:58:54

标签: azure-cosmosdb gremlin tinkerpop

我们的某些代码库已更改,因此现在希望以前具有名称为“ Sdg”的属性的顶点现在具有名称为“ causeType”且具有相同值的属性。简而言之,就是财产的重命名。

在这一点上,我已经尝试了很多,并且...对于找出如何搜索图形并在需要时进行重命名有多么困难感到有些惊讶。

我最接近的是以下查询:

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

...由于错误,它不起作用:

  

Gremlin查询编译错误:无法绑定到方法'value',   参数类型为:(GraphTraversal)@第1行,第68列。无法   绑定到方法“ property”,其参数类型为:(字符串)

这个想法是遍历图并记住具有旧值的每个顶点。然后,我将具有相同值的新属性添加到它们中。为了简单/可行,我决定只忽略旧值,而不是删除它。

谁能帮助我或引导我朝正确的方向前进?

谢谢!

1 个答案:

答案 0 :(得分:0)

也许有更好的方法,但是我认为这应该对您有用:

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

如果要删除旧属性

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