У меня есть элементарная база данных, в которой всего пара узлов и связей.Когда я запускаю команду match (n) return n
на локальном веб-клиенте, поставляемом с neo4j, он возвращает все узлы и связи, которые есть в базе данных, как показано на рисунке ниже.
Однако, когда я запускаю точно такую же команду в проекте node.js с использованием модуля neo4j-driver , он возвращает только три узла, и ни одно из двух отношений не включается.
Немного поигравшись с этим, я заметил, что для извлечения отношений я также должен выпустить что-то вроде match (n)-[r]-(m) return *
.Мой первый вопрос: почему такая разница?Не пытается ли локальный веб-клиент сделать что-то еще, чтобы помочь пользователю?
Кроме того, объект возвращаемых записей немного сбивает с толку.Выполнение этой команды match (n)-[r]-(m) return *
возвращает 4 элемента в объекте result.records, из которых 2-2 практически идентичны попарно.В упрощенном виде это то, что он возвращает:
item 0: [Jack node, Jill node, Jack -> Jill relationship]
item 1: [Jill node, Jack node, Jack -> Jill relationship]
item 2: [George node, Jill node, George -> Jill relationship]
item 3: [Jill node, George node, George -> Jill relationship]
Таким образом, элементы 0 и 1 объекта result.records отличаются только порядком их элементов.То же самое для пунктов 2 и 3.
Вопрос второй: что мне делать с этим, если я хочу отобразить график на веб-странице?Ищите уникальные идентификаторы узлов и отношений во всех различных возвращаемых комбинациях?
Вопрос третий: может быть, есть лучший способ достичь того, что я пытаюсь сделать?