2015-02-23 3 views
0

Предположим, у меня есть набор узлов.Выбор одного узла среди закрытых узлов

В комплекте есть несколько групп. Как это.

группа1: (A) -> (В) -> (С)

group2: (D) -> (Е) -> (Р) -> (G) -> (Н)

group3: (I) -> (J)

В этом случае я хочу выбрать только один узел в каждой группе. Например, . A в группе 1, F в группе 2, J в группе 3

Как это сделать? Пожалуйста, помогите мне

ответ

0

Если ваши группы - это коллекции, вы можете ссылаться на каждый предмет в коллекции индивидуально.

В этом примере создаются три коллекции: group1, group2 и group3, а затем возвращается элемент из каждого. Элементы в коллекциях так же легко могли быть узлами, как строки.

with ['A', 'B', 'C'] as group1 
, ['D','E','F','G','H'] as group2 
, ['I','J'] as group3 
return group1[0],group2[2], group3[1] 

Обновленный ответ, чтобы показать соответствующие три отдельные пути (группа1, group2, Group3) каждая из которых начинается с буквы в приведенном примере (А, D, I).

match group1=(:Alpha {name: 'A'})-[*1..5]->(:Alpha) 
, group2=(:Alpha {name: 'D'})-[*1..5]->(:Alpha) 
, group3=(:Alpha {name: 'I'})-[*1..5]->(:Alpha) 
return (nodes(group1))[0] 
, (nodes(group2))[2] 
, (nodes(group3))[1] 
+0

извините, не соответствует. вы можете уточнить? –

+0

Спасибо за ваш ответ. Но этого я не хотел. Я думаю, что моего объяснения недостаточно, потому что я плохо разбираюсь в английском. Пример - всего лишь пример. В примере алфавиты означают узлы, и они уже существуют перед отправкой запроса. А стрелка (->) означает отношения. Тогда, я думаю, нужно начинать запрос примерно так. MATCH (n)/WHERE NOT (n) - [*] - (n) ????/RETURN n – Weve

+0

Я добавил некоторый cypher, который соответствует путям узлов, которые у вас есть в вашем примере. Затем он ссылается на конкретный узел в каждом пути. –

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