Я пытаюсь получить тип отношения очень простого запроса Cypher, например, следующий
MATCH (n)-[r]-(m) RETURN n, r, m;
К сожалению, это возвращает пустой объект для r
. Это хлопотно, так как я не могу различать разные типы отношений. Я могу обезьяна заплатить это, добавив свойство вроде [r:KNOWS {type:'KNOWS'}]
, но мне интересно, нет ли прямого способа получить тип отношения.
Я даже последовали за официальным учебником Neo4J (как описано ниже), демонстрируя проблему.
Настройка графика:
create (_0 {`age`:55, `happy`:"Yes!", `name`:"A"})
create (_1 {`name`:"B"})
create _0-[:`KNOWS`]->_1
create _0-[:`BLOCKS`]->_1
Query
MATCH p=(a { name: "A" })-[r]->(b)
RETURN *
JSON RESPONSE BODY:
{
"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