azure-cosmosdb - 更新 Gremlin 中所有顶点的属性
问题描述
我想更新一个标签的所有顶点中的属性值。
g.AddV('car').property('id','1').property('name','Benz')
g.AddV('car').property('id','2').property('name','BMW')
g.AddV('car').property('id','3').property('name','Audi')
g.AddV('car').property('id','4').property('name','Nissan')
像这样有1000个顶点。我想name
在所有这些顶点中将值更新为小写。它需要在 Azure Cosmos Graph DB 上运行。
解决方案
由于 gremlin 没有字符串操作函数。
据我所知,CosmosDb 不支持 lambda 步骤。
我认为您将必须获取所有名称和 ID:
g.V().has('name').project('id', 'name').by(id).by('name')
然后小写代码中的每个名称。然后像这样更新它:
g.V(id).property(single, 'name', lowercaseName)
或全部在一个查询中:
g.inject(1).union(
.V(id1).property(single, 'name', lowercaseName1),
.V(id2).property(single, 'name', lowercaseName2)
.V(id3).property(single, 'name', lowercaseName3)
....
)