我试图理解条件插入的这种模式是如何工作的:
g.V()
.hasLabel('person').has('name', 'John')
.fold()
.coalesce(
__.unfold(),
g.addV('person').property('name', 'John')
).next();
Run Code Online (Sandbox Code Playgroud)
折叠/展开的目的是什么?为什么这些是必要的,为什么这不起作用:
g.V()
.coalesce(
__.hasLabel('person').has('name', 'John'),
g.addV('person').property('name', 'John')
).next();
Run Code Online (Sandbox Code Playgroud)
折叠然后展开的模式对我来说似乎是多余的,但上述情况并没有产生相同的结果.
我是Gremlin查询语言的新手.我必须在Cosmos DB图表上插入数据(使用Gremlin.Net包),无论顶点(或边缘)是否已存在于图形中.如果数据存在,我只需要更新属性.我想用这种模式:
g.V().hasLabel('event').has('id','1').tryNext().orElseGet {g.addV('event').has('id','1')}
Run Code Online (Sandbox Code Playgroud)
但Gremlin.Net/Cosmos DB图API不支持它.有没有办法在单个查询中进行一种upsert查询?
提前致谢.
现在,我能够生成查询以创建所需的任意数量的顶点和边。
例如
g.V().addV('vert1').as('a').addV('vert2').as('b').addE('has').from('a').to('b')
Run Code Online (Sandbox Code Playgroud)
^^^^^^^^^^^^^^^这行得通。很容易吧?现在让我们创建一个gremlin查询,该查询仅在标签唯一的情况下创建这些顶点。然后在两者之间创建一条边。
g.V().has(label,'vert1').fold().coalesce(unfold(),addV('vert1')).as('a').V().has(label,'vert2').fold().coalesce(unfold(),addV('vert2')).as('b').addE('has').from('a').to('b')
Run Code Online (Sandbox Code Playgroud)
^^^^^^^^^^^^^^^这不起作用
希望您能理解我正在尝试做的事情。谁能帮我?
谢谢
我在应用程序中使用 gremlin REST 服务器,并且想在单个查询中创建到顶点的多条边。我有一个顶点 ID 列表,从那里创建边到单个顶点。
例如 - gV(12,13,14,15).addEdge('uses', gV(100))
我尝试了很多遍历步骤,但无法使其工作。