首页 > 解决方案 > 为什么需要限制不指定边类型的数据插入?

问题描述

neo4j@neo4j> create (v:player)-[]->();
Exactly one relationship type must be specified for CREATE. Did you forget to prefix your relationship type with a ':'? (line 2, column 18 (offset: 18))
"create (v:player)-[]->();"

我认为这对于像这样的查询也很有用MATCH p=(v:player)-[]->() RETURN p,那么为什么要限制它呢?
其实在看 cypher 的时候,我有点疑惑为什么要提出 of 的概念relationship type而不是 . 的概念Edge label。有人可以帮我解决这个问题吗?

标签: neo4jcypher

解决方案


关系类型和边标签是相同的概念。导入图形时,每个关系都需要定义一个类型或标签。RELATIONSHIP如果您没有考虑特定的边缘标签,您始终可以使用通用边缘标签。

create (v:player)-[:RELATIONSHIP]->(:player);

这就是在 Neo4j 中定义属性图模型的方式。但是,您始终可以匹配关系并忽略关系类型,如您的示例中所示:

MATCH p=(v:player)-[]->() RETURN p

有关在 Neo4j 中建模关系的更多详细信息,请查看以下博客文章:https ://medium.com/neo4j/graph-data-modeling-all-about-relationships-5060e46820ce


推荐阅读