Подтвердить что ты не робот

Как вернуть тип отношения с запросами Neo4J Cypher?

Я пытаюсь получить тип отношения очень простого запроса 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

4b9b3361

Ответ 1

Используйте функцию type().

MATCH (n)-[r]-(m) RETURN type(r);