Neo4j 如何在foreach中设置动态属性?
我一直在使用apoc成功地设置动态属性,但无法在foreach中使用apoc 相当于我想做的事情:Neo4j 如何在foreach中设置动态属性?,neo4j,Neo4j,我一直在使用apoc成功地设置动态属性,但无法在foreach中使用apoc 相当于我想做的事情: MATCH (n:Label {id: {id}}) MERGE (n)-[rel:HAS_RELATIONSHIP]->(UniqueNode:UniqueLabel) WITH DISTINCT rel, ["DynamicProp1", "DynamicProp2", "DynamicProp3", &quo
MATCH (n:Label {id: {id}})
MERGE (n)-[rel:HAS_RELATIONSHIP]->(UniqueNode:UniqueLabel)
WITH DISTINCT rel, ["DynamicProp1", "DynamicProp2", "DynamicProp3", "LongListWouldRatherNotDoOneAtATime"] as list
FOREACH (x in list |
FOREACH (o IN CASE WHEN NOT EXISTS(rel[x]) THEN [1] ELSE [] END |
SET rel[x]=false))
由于无法使用SET rel[x]=false,因此必须使用
CALL apoc.create.setRelProperty(rel, x, false)
但我不想用它在一个论坛上。。。
有办法做到这一点吗?蒂亚 您可以使用“展开”来获取列表中每个元素的行,如果键不存在,则进行筛选,然后使用APOC进行设置
MATCH (n:Label {id: {id}})
MERGE (n)-[rel:HAS_RELATIONSHIP]->(UniqueNode:UniqueLabel)
WITH rel
UNWIND ["DynamicProp1", "DynamicProp2", "DynamicProp3", "LongListWouldRatherNotDoOneAtATime"] as propKey
WITH rel, propKey
WHERE NOT EXISTS(rel[propKey])
CALL apoc.create.setRelProperty(rel, propKey, false)
RETURN count(*)
很漂亮,谢谢。我希望我可以保留我的起始节点,但我想这可能是下一个版本的…您可以保留
n
和UniqueNode
的范围,只需将它们包含在WITH子句中即可。