Neo4J:如何为每个收集按1递增属性
如何将属性增量1,从每个新集合的0开始 如果数据集为:Neo4J:如何为每个收集按1递增属性,neo4j,Neo4j,如何将属性增量1,从每个新集合的0开始 如果数据集为: MERGE (node1 {Property: 1})-[rel1:REL]->(nodeA {Property: "A"}) MERGE (node2 {Property: 2}) MERGE (nodeB {Property: "B"}) MERGE (node2)-[rel2:REL]->(nodeA) MERGE (node2)-[rel3:REL]->(nodeB) 获得以下信息的动态方式是什么: SET re
MERGE (node1 {Property: 1})-[rel1:REL]->(nodeA {Property: "A"})
MERGE (node2 {Property: 2})
MERGE (nodeB {Property: "B"})
MERGE (node2)-[rel2:REL]->(nodeA)
MERGE (node2)-[rel3:REL]->(nodeB)
获得以下信息的动态方式是什么:
SET rel1.Property=0
SET rel2.Property=0
SET rel3.Property=1
比如:
MATCH (node)-[rel:REL]->()
WITH DISTINCT node, COLLECT(rel) as relcol
FOREACH(r IN relcol |
foreach (i IN RANGE(0, SIZE(relcol)-1) |
SET (r[i]).Property = (i + 1) ))
除了给出错误:
Neo.ClientError.Statement.TypeError:预期Long(0)是org.neo4j.values.storable.TextValue,但它是org.neo4j.values.storable.LongValue
谢谢 您有一个无关的
FOREACH
级别;你应该用relcol[i]
而不是r[i]
,用i
而不是i+1
这应该更好地发挥作用:
MATCH (node)-[rel:REL]->()
WITH node, COLLECT(rel) as relcol
FOREACH (i IN RANGE(0, SIZE(relcol)-1) | SET (relcol[i]).Property = i)
对于DISTINCT
子句不需要,因为(如WITH
)会自动将分组键(如COLLECT
)视为DISTINCT节点
- 通常无法预测来自
的两个关系中的哪一个最终将被分配node2
属性
值
或0
。我想你真的不在乎1