相关疑难解决方法(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
查看次数

Gremlin - 如果它不存在,只添加一个顶点

我有一组用户名(例如['abc','def','ghi'])要添加到图表中的"用户"标签下.

现在我首先要检查用户名是否已经存在(g.V().hasLabel('user').has('username','def')),然后仅添加"用户"标签下用户名属性不匹配的用户名.

此外,这可以在单个gremlin查询或groovy脚本中完成吗?

我正在使用titan graph数据库,tinkerpop3和gremlin REST服务器.

groovy graph-databases gremlin titan tinkerpop3

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

使用gremlin添加边缘(如果不存在)

我在蔚蓝中使用波斯菊图数据库。

有谁知道只有在不存在两个顶点之间才可以添加边的方法(使用gremlin图查询)?

添加顶点时可以做到这一点,但不能添加边。我从这里获取了执行操作的代码:

g.Inject(0).coalesce(__.V().has('id', 'idOne'), addV('User').property('id', 'idOne'))
Run Code Online (Sandbox Code Playgroud)

谢谢!

graph gremlin

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

在Azure Cosmos DB Graph API中添加或获取顶点

使用Gremlin,我可以通过发出以下命令在Azure Cosmos DB图中创建一个顶点

g.addV('the-label').property('id', 'the-id')
Run Code Online (Sandbox Code Playgroud)

然后使用找到它

g.V('the-label').has('id', 'the-id')
Run Code Online (Sandbox Code Playgroud)

但是,我还没有找到一种发出查询的方法,该查询将在缺少该节点时插入该节点,如果已经存在则仅获取对该节点的引用。有办法吗?


我的具体用例是,我想在两个节点之间添加一条边,而不管这些节点(或该边)是否在单个查询中已经存在。我尝试了这种upsert方法,但是显然Cosmos DB不支持Groovy闭包,因此它不起作用。

gremlin azure-cosmosdb

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