相关疑难解决方法(0)

为什么需要使用coalesce折叠/展开条件插入?

我试图理解条件插入的这种模式是如何工作的:

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 tinkerpop3

9
推荐指数
1
解决办法
1413
查看次数

CosmosDB图:"upsert"查询模式

我是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查询?

提前致谢.

gremlin azure-cosmosdb

7
推荐指数
1
解决办法
1696
查看次数

Gremlin Coalesce添加多个顶点和边

现在,我能够生成查询以创建所需的任意数量的顶点和边。

例如

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 tinkerpop3 amazon-neptune

2
推荐指数
1
解决办法
1175
查看次数

使用顶点 ID 在单个 gremlin 查询中添加多条边

我在应用程序中使用 gremlin REST 服务器,并且想在单个查询中创建到顶点的多条边。我有一个顶点 ID 列表,从那里创建边到单个顶点。

例如 - gV(12,13,14,15).addEdge('uses', gV(100))

我尝试了很多遍历步骤,但无法使其工作。

groovy gremlin tinkerpop tinkerpop3 gremlin-server

1
推荐指数
1
解决办法
1826
查看次数