小编Seb*_*nar的帖子

Cypher:将UNWIND与可能为空的集合一起使用

有没有办法将UNWIND用于潜在的空集合(例如OPTIONAL UNWIND g)?

例如,在附加查询中,有时(第3块)集合(项)是空的,但其他集合的结果仍然相关.

在这里,我想要为子图形处理一些数字并返回各种节点类型(组,用户,位置,项目,项目组)的计数.项目组只能通过项目派生.并且因为有多个项目附加到多个用户,如果我直接在第二个块中包含项目组而没有首先聚合,那将会非常慢.

MATCH(group: Group {id: "12345"})
OPTIONAL MATCH(group) - [: IS_PARENT * 0..] - > (subgroup: Group)

WITH collect(distinct subgroup) as groups
UNWIND groups as group
  OPTIONAL MATCH(u: User) - [: BELONGS_TO] - > (group)
  OPTIONAL MATCH(u) --(i: Item)
  OPTIONAL MATCH(u) --(l: Location)
WITH groups, collect(distinct u) as users, collect(distinct i) as items, collect(distinct l) as locations
UNWIND items as i
  OPTIONAL MATCH(i) --(ig: FunctionalArea)
RETURN length(groups), length(users), length(items), length(locations), count(distinct ig)
Run Code Online (Sandbox Code Playgroud)

我找到了一个解决方法,但我对此并不满意.当我将一个虚拟节点插入到items集合中时,我可以每次放松它而不会丢失结果.

MATCH(group: Group {id: …
Run Code Online (Sandbox Code Playgroud)

performance graph neo4j cypher

7
推荐指数
2
解决办法
1890
查看次数

没有BASH的Jenkins Pipeline Step withEnv无法正常工作

我在Jenkins管道中为容器设置环境变量时遇到麻烦。似乎“ withEnv”在没有bash的机器上不能很好地工作。

你能确认吗?我找不到官方声明;-)

当我在Jenkins奴隶上运行以下代码片段时,它将起作用。但是,在没有BASH的docker容器中执行该命令时,未设置“ $ test”。

 withEnv(["test='asd'"]){
      sh 'echo $test'
 }
Run Code Online (Sandbox Code Playgroud)

https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#code-withenv-code-set-environment-variables

bash jenkins jenkins-workflow jenkins-pipeline

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