我正在尝试获取一个非常简单的Cypher查询的关系类型,如下所示
MATCH (n)-[r]-(m) RETURN n, r, m;
不幸的是,这会为r
返回一个空对象。这很麻烦,因为我无法区分不同类型的关系。我可以通过添加像[r:KNOWS {type:'KNOWS'}]
之类的属性来修补此问题,但我想知道是否有直接获取关系类型的方法。
我甚至关注官方Neo4J tutorial(如下所述),证明了问题。
图表设置:
create (_0 {`age`:55, `happy`:"Yes!", `name`:"A"})
create (_1 {`name`:"B"})
create _0-[:`KNOWS`]->_1
create _0-[:`BLOCKS`]->_1
查询:
MATCH p=(a { name: "A" })-[r]->(b)
RETURN *
JSON响应机构:
{
"results": [
{
"columns": [
"a",
"b",
"p",
"r"
],
"data": [
{
"row": [
{
"name": "A",
"age": 55,
"happy": "Yes!"
},
{
"name": "B"
},
[
{
"name": "A",
"age": 55,
"happy": "Yes!"
},
{},
{
"name": "B"
}
],
{}
]
},
{
"row": [
{
"name": "A",
"age": 55,
"happy": "Yes!"
},
{
"name": "B"
},
[
{
"name": "A",
"age": 55,
"happy": "Yes!"
},
{},
{
"name": "B"
}
],
{}
]
}
]
}
],
"errors": []
}
正如你所看到的,我得到r
的空对象,这使得无法区分关系。
注意:我正在运行Neo4J v.2.2.2
答案 0 :(得分:31)
使用type()
功能。
MATCH (n)-[r]-(m) RETURN type(r);
答案 1 :(得分:0)
添加了不同的。
MATCH (n)-[r]-(m) RETURN distinct type(r);