neo4j通过输入按数组顺序匹配节点

托马兹·布拉塔尼奇(TomažBratanič)

我正在尝试实现https://neo4j.com/blog/moving-relationships-neo4j/指针功能,以将其用作团队订单计算机。有关模型,请参见http://imgur.com/a/MViF0我正在使用此密码查询。

 MERGE (list:LIST)
 WITH list
 MATCH (u) WHERE ID(u) IN [421, 419, 420]
 MERGE (team:TEAM{name: u.name})
 MERGE (team)-[:PARTOF]->(list)
 WITH collect(team)as elems,list
      FOREACH (n IN RANGE(0, LENGTH(elems)-2) |
 FOREACH (prec IN [elems[n]] |
 FOREACH (next IN [elems[n+1]] |
 MERGE (prec)-[:NEXT]->(next))))
 with list
 MATCH (elem:TEAM) WHERE NOT (elem)<-[:NEXT]-()
 MERGE (list)-[:POINTER]->(elem)

现在,这很好用,但是我只有一个问题。这行:

MATCH (u) WHERE ID(u) IN [421, 419, 420]

返回我的原始团队(按ID排序),但我想通过[421,419,420]模式中的模式来定义我的订单,例如

return * order by my array input.

请记住,它应该适用于任何数量的团队,这只是一个例子。而且我原来的团队节点未标记为团队,而是其他名称,因此我们每次都会重复。任何输入表示赞赏,谢谢。

stdob--

尝试使用“ unwind”语句:

MERGE (list:LIST)
WITH list
UNWIND [421, 419, 420] as uid
MATCH (u) WHERE id(u) = uid
MERGE (team:TEAM{name: u.name})
...

[更新]当然,可以手动知道每个节点的顺序:

MERGE (list:LIST)
WITH list, [3871013, 3871011, 3871012] as ids
MATCH (u) WHERE ID(u) IN ids
WITH list, u, 
     FILTER(x in RANGE(0,size(ids)-1) WHERE ids[x] = id(u)) as orderIndex 
     ORDER BY orderIndex[0] // Sort by node position in the array of identifiers
MERGE (team:TEAM{name: u.name})
...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从 Neo4j 路径中按顺序显示所有节点和关系的名称

来自分类Dev

如何通过使用Java API在neo4j 1.9.3中按名称获取节点?

来自分类Dev

neo4j 2.0 / Cypher:匹配通过2个不同关系连接的节点

来自分类Dev

通过Neo4j中的节点ID筛选索引匹配

来自分类Dev

Neo4j:如何匹配属性数组中具有公共值的节点

来自分类Dev

Neo4j cypher返回属性匹配任何数组元素的所有节点

来自分类Dev

Neo4j Cypher:基于输入数组的MATCH控制顺序?

来自分类Dev

Neo4j Cypher:基于输入数组的MATCH控制顺序?

来自分类Dev

Neo4j按距离的空间顺序

来自分类Dev

按关系顺序排序属性neo4j

来自分类Dev

Neo4j按距离的空间顺序

来自分类Dev

neo4j 不按人名返回节点

来自分类Dev

java neo4j cypher查询以匹配节点

来自分类Dev

基于关系的Neo4J匹配节点

来自分类Dev

neo4j节点查询不匹配

来自分类Dev

java neo4j cypher查询来匹配节点

来自分类Dev

匹配neo4j中最近的可能节点

来自分类Dev

Neo4j 在多个节点上获得匹配总和

来自分类Dev

Neo4j/Cypher - 随机匹配节点

来自分类Dev

通过属性值neo4j获取节点

来自分类Dev

neo4j密码,找到节点,并通过ID关联

来自分类Dev

Neo4j 在 Cypher 中通过 WITH 传递不同的节点

来自分类Dev

匹配FOAF,但按日期限制路径;特别是以顺序方式,在Neo4j中

来自分类Dev

匹配FOAF,但按日期限制路径;特别是以顺序方式,在Neo4j中

来自分类Dev

Neo4j通过用户定义的变量进行匹配

来自分类Dev

在Neo4j图形数据库上使用Cypher展开数组并与其他节点匹配

来自分类Dev

Neo4j Cypher:按与另一个节点的关系对节点进行分组

来自分类Dev

搜索Neo4j中从所有节点到所有节点的匹配项

来自分类Dev

Neo4j和Cypher:匹配与目标节点具有单一关系的节点

Related 相关文章

  1. 1

    如何从 Neo4j 路径中按顺序显示所有节点和关系的名称

  2. 2

    如何通过使用Java API在neo4j 1.9.3中按名称获取节点?

  3. 3

    neo4j 2.0 / Cypher:匹配通过2个不同关系连接的节点

  4. 4

    通过Neo4j中的节点ID筛选索引匹配

  5. 5

    Neo4j:如何匹配属性数组中具有公共值的节点

  6. 6

    Neo4j cypher返回属性匹配任何数组元素的所有节点

  7. 7

    Neo4j Cypher:基于输入数组的MATCH控制顺序?

  8. 8

    Neo4j Cypher:基于输入数组的MATCH控制顺序?

  9. 9

    Neo4j按距离的空间顺序

  10. 10

    按关系顺序排序属性neo4j

  11. 11

    Neo4j按距离的空间顺序

  12. 12

    neo4j 不按人名返回节点

  13. 13

    java neo4j cypher查询以匹配节点

  14. 14

    基于关系的Neo4J匹配节点

  15. 15

    neo4j节点查询不匹配

  16. 16

    java neo4j cypher查询来匹配节点

  17. 17

    匹配neo4j中最近的可能节点

  18. 18

    Neo4j 在多个节点上获得匹配总和

  19. 19

    Neo4j/Cypher - 随机匹配节点

  20. 20

    通过属性值neo4j获取节点

  21. 21

    neo4j密码,找到节点,并通过ID关联

  22. 22

    Neo4j 在 Cypher 中通过 WITH 传递不同的节点

  23. 23

    匹配FOAF,但按日期限制路径;特别是以顺序方式,在Neo4j中

  24. 24

    匹配FOAF,但按日期限制路径;特别是以顺序方式,在Neo4j中

  25. 25

    Neo4j通过用户定义的变量进行匹配

  26. 26

    在Neo4j图形数据库上使用Cypher展开数组并与其他节点匹配

  27. 27

    Neo4j Cypher:按与另一个节点的关系对节点进行分组

  28. 28

    搜索Neo4j中从所有节点到所有节点的匹配项

  29. 29

    Neo4j和Cypher:匹配与目标节点具有单一关系的节点

热门标签

归档