2017-02-16 5 views
3

Я читал cypher refcard, в котором я наткнулся на следующее:Что такое шаблон понимание и пользовательские проекции в Neo4j шифровальщик

шаблона постижения могут быть использованы для пользовательской проекции от матча непосредственно в список:

MATCH (a) 
RETURN [(a)-->(b) WHERE b.name = 'Bob' | b.age] 

Я подготовил простой график и попробовал аналогичные запросы на нем. Но он продолжал давать ошибку Invalid input 'W': expected whitespace, comment, a relationship pattern на WHERE.

Q1. В чем смысл вышеперечисленного cypher, должен ли он возвращать все пути (a)-->(b) с b.name=Bob или вернуть b.age?

Q2. Я никогда не видел спецификации пути (a)-->(b) после RETURN. Очевидно, что у меня отсутствуют некоторые основы. Что это?

ответ

1

ПРИМЕЧАНИЕ. Учет шаблона был введен только в Neo4j 3.1, версии 3.0.x и ниже не будут иметь этой функции.

Ответ на Q1: Смысл в этом примере: «Учитывая переменную a (так как она находится в области от ранее в запросе) найти исходящее отношение к какому-либо узлу и привязать его к переменной b где узел b «s свойство имя„Bob“. Заполняем список с возрастом свойство каждого b узла.

| в этом контексте отделяет образец и где положение из выражения того, что значения для заполнения в результирующий список.

Не уверен, что я слежу за тем, что вы спросите о в Q2.

Для вашего конкретного использования, почему оно дает вам ошибку, мы должны уметь видеть, что вы делаете с этим, чтобы выяснить проблему. Можете ли вы добавить это к своему описанию?

Хотя если бы я был рискну предположить, возможно, вы используете шаблон в шаблон понимания, что не имеет каких-либо отношений, что-то вроде этого:

return [(a:Person) | a.name] as names 

В настоящее время использований, как это будет терпеть неудачу, когда не является отношением в шаблоне, что-то я считаю ошибкой и подаю как таковой в список проблем.

Для получения дополнительной информации, вот pattern comprehension entry в руководстве для разработчиков и longer writeup о постижении рисунка (и проекции карты).

+0

ohh похоже, что я на 3.0.4 CE, который является виновником права? Также спасибо за указание на те ссылки ... – Mahesha999

+0

Это было бы проблемой! Функция была введена только с 3.1, я забыл упомянуть об этом! – InverseFalcon

Смежные вопросы