2012-06-05 6 views
2

В моем приложении у меня есть классы/узлы, такие как:

многих лица
-активность -company

Я могу создать отношения между:
- лицами и компаниями
- компания и деятельность
- деятельность и личность - человек и человек
- компания и компания

So. Возможно, что конкретная деятельность связана с человеком и компанией. Компания в основном является корнем. Но нет реальной иерархии. Это больше похоже на структуру сетки.

(я знаю, как создать отношения и т.д. Я видел уже несколько учебников. :))

Теперь. Я хочу получить все непосредственно связанные отношения с узлами определенного узла. Я НЕ хочу получать связанные данные по типу отношений. Я хочу (когда это возможно) один запрос, который читает все отношения и соответствующие узлы.
И второе требование: когда я получил все связанные отношения и узлы, я хочу получить отношения (если они существуют) между этими узлами!

Так что было бы здорово решить эту проблему с помощью 2 запросов!

Любые идеи?

Спасибо!Neo4jClient Получить все Реферировано Узлы

ответ

0

Как о чем-то вроде

start company = node(2) match company-[?:employs]-> person return company, person 

См docs.neo4j.org/chunked/snapshot/cypher-query-lang.html подробности.

В противном случае вы можете искать компании, лица и т. Д. В индексе, например.

start comp=node:Companies(name='Cocal Cola'), person=node:Persons(name='Bob') ... 

Это то, что вы ищете?

+0

Первый запрос выглядит хорошо! Запрос вроде этого «node (*) соответствует n- [r?] -> m return n, type (r), m" возвращает все подключенные узлы. Мне не нужно запрашивать для каждого типа отношений. И я вижу взаимосвязи между «подушками». Например: A и B подключены к C. И между этими подузлами (A, B) существует также связь. – user1401611

+0

Теперь я просто не знаю, как реализовать это в neo4jclient. Поскольку узлы A, B и C и отношения являются разными классами. И когда я беру данные, я не буду бросать узлы в соответствующие классы/типы ....:/ – user1401611

+0

не уверен, может быть, обратитесь к автору библиотеки? –