gpt4 book ai didi

graph - 宇宙数据库 : Gremlin Query to create a new property using existing property

转载 作者:行者123 更新时间:2023-12-04 13:52:38 25 4
gpt4 key购买 nike

每个顶点都有一个结构:

{
Id: 123,
field1: 10
}
我要加 field2到所有顶点,使得 field2其值等于 field1 .
挑战在于,我在这里以及其他地方找到的几乎所有查询都在 Cosmos DB 中出现语法错误。
例如。
g.V().has("field1").property("field2", values("field1")) 
这给出了一个错误: Cannot create ValueField on non-primitive type GraphTraversal .
请建议一个与 cosmos DB 兼容的查询(如果需要,多步)以在 DB 上执行此操作。
这是对 DB 的一次性操作,不会再次执行。

最佳答案

正如我在别处提到的,我不是 CosmosDB 专家,但我敢于猜测您所要求的内容不能用 CosmosDB 完成。您肯定拥有最简单形式的正确语法,因此更复杂的形式会以某种方式解决问题的想法似乎不太可能。我想是 property(String, Traversal)目前完全不受支持,这意味着不可能进行就地更新。
您可以测试复杂的形式(例如 select(Traversal,Traversal),如果您愿意,您可以自己满意 - 例如,从演示如何从 map 数据更新顶点的 blog post 中:

gremlin> m = [name:'marko',age:29,country:'usa']
==>name=marko
==>age=29
==>country=usa
gremlin> g.withSideEffect('properties',m).
......1> addV('person').as('vertex').
......2> sideEffect(select('properties').
......3> unfold().as('kv').
......4> select('vertex').
......5> property(select('kv').by(Column.keys), select('kv').by(Column.values)))
==>v[0]
gremlin> g.V().has('person','name','marko').elementMap()
==>[id:0,label:person,country:usa,name:marko,age:29]
因此,您唯一的办法是查询您希望更新的顶点,然后将额外的遍历发送回以更新您想要的字段。从结构上讲,这个建议是简单地检索 Map 中的数据。键的顶点标识符的形式和保存要移动的数据的值,然后简单地在返回的映射列表上使用 for 循环来发出每个 id/value 的查询:
gremlin> g = TinkerFactory.createModern().traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> data = g.V().has('age')
==>v[1]
==>v[2]
==>v[4]
==>v[6]
gremlin> data = g.V().has('age').project('id','age').by(id).by('age').toList()
==>[id:1,age:29]
==>[id:2,age:27]
==>[id:4,age:32]
==>[id:6,age:35]
gremlin> data.each { g.V(it['id']).property('personAge',it['age']).iterate() };[]
gremlin> g.V().has('personAge').project('id','age').by(id).by('personAge')
==>[id:1,age:29]
==>[id:2,age:27]
==>[id:4,age:32]
==>[id:6,age:35]

关于graph - 宇宙数据库 : Gremlin Query to create a new property using existing property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67914589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com