2015-02-17 2 views
0

Я пытаюсь выяснить, как ограничить кратчайший запрос пути в cypher, чтобы он соединял только узлы Person, содержащие определенное свойство.Ограничение ShortestPath в Cypher узлам со специфическими свойствами

Вот мой запрос:

MATCH p = shortestPath((from:Person {id: 1})-[*]-(to:Person {id: 2})) RETURN p 

Я хотел бы ограничить его так, что, когда он соединяется с одного Person узла к другому лицу узла, узел Person должен содержать свойство «работа» и ценность «инженера».

Не могли бы вы помочь мне построить запрос? Благодаря!

ответ

2

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

MATCH p = shortestPath((from:Person {id: 1})-[*]-(to:Person {job: "engineer"})) 
RETURN p; 

Этот вид запроса должен быть намного быстрее, если вы также создали индексы для id и job свойств Person.

+0

Спасибо за ваш комментарий. Извините за неясность. Я вижу, что вы говорите, но я хочу, чтобы соединения между Person ID: 1 с идентификатором личности: 2 были доступны только людям с {job: "engineer"} как свойство узла. Поэтому, если узел соединения не имеет этого задания, я не хочу, чтобы мой самый короткий путь соединялся через них. Это помогает? –

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