Ash*_*kes 6 neo4j nosql graph-databases cypher
我正在尝试编写Cypher查询以在一个查询中创建多个节点和关系.CREATECypher中使用子句的文档指出,不可能在单个CREATE子句中创建不同类型的多个节点.
然而它暗示我应该能够把它分解成多个CREATE.我读过的几个类似的答案也指向了相同的解决方案.我试过这样做并继续得到响应错误.
Error: If you create multiple elements, you can only create one of each.
Run Code Online (Sandbox Code Playgroud)
这是我正在尝试做的简要概述.
item节点.representation节点.item节点和现有stack节点之间创建关系.item节点和创建的representation节点之间创建多个关系.这是我正在使用的查询,它试图将CREATE流程的所有单个部分分解为单个步骤.
START stack=node({stack})
CREATE (item {item})
CREATE (representations {representations})
CREATE (stack)-[:Item]->(item)
CREATE (item)-[:Representation]->(representations)
RETURN item, representations
Run Code Online (Sandbox Code Playgroud)
我已经尝试了上述查询的几种变体,包括在查询开头创建item和representation节点.
我真的很感激任何建议.如果可以避免的话,我真的不想诉诸于多个数据库调用.
你的陈述是一个清单吗?那么您只能将其作为单个 create 语句。
我从你的语法中假设 Neo4j 1.9。
你可以做的是使用 FOREACH
START stack=node({stack})
CREATE (item {item})
CREATE (stack)-[:Item]->(item)
FOREACH (r in {representations} :
CREATE (representation {r}), (item)-[:Representation]->(representation)
)
MATCH (item)-[:Representation]->(representations)
RETURN item, representations
Run Code Online (Sandbox Code Playgroud)