为什么要限制没有指定边类型的数据插入?
Why need to restrict data inserts that do not specify edge types?
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的时候有点疑惑为什么要提出relationship type
的概念而不是Edge label
的概念。
有人可以帮我解决这个问题吗?
关系类型和边标签是相同的概念。导入图形时,每个关系都需要定义一个类型或标签。如果您没有特定的边缘标签,您始终可以使用 RELATIONSHIP
等通用边缘标签。
create (v:player)-[:RELATIONSHIP]->(:player);
这就是 属性 图模型在 Neo4j 中的定义方式。但是,您始终可以匹配关系并忽略关系类型,如您的示例所示:
MATCH p=(v:player)-[]->() RETURN p
有关 Neo4j 中建模关系的更多详细信息,请查看以下博客 post:https://medium.com/neo4j/graph-data-modeling-all-about-relationships-5060e46820ce
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的时候有点疑惑为什么要提出relationship type
的概念而不是Edge label
的概念。
有人可以帮我解决这个问题吗?
关系类型和边标签是相同的概念。导入图形时,每个关系都需要定义一个类型或标签。如果您没有特定的边缘标签,您始终可以使用 RELATIONSHIP
等通用边缘标签。
create (v:player)-[:RELATIONSHIP]->(:player);
这就是 属性 图模型在 Neo4j 中的定义方式。但是,您始终可以匹配关系并忽略关系类型,如您的示例所示:
MATCH p=(v:player)-[]->() RETURN p
有关 Neo4j 中建模关系的更多详细信息,请查看以下博客 post:https://medium.com/neo4j/graph-data-modeling-all-about-relationships-5060e46820ce