2015-12-14 2 views
0

[Изменено]Создать двудольный запрос в Neo4j

У меня есть база данных, которая представляет данные GitHub, который состоит из узлов пользователей и Repo узлов, с направленной связью от пользователей к Repo называеться [: ВКЛАД].

Я пытаюсь получить табличные данные для построения двудольного графа в R, но не могу понять, как это сделать.

MATCH (n:User{name:'mattt'})-[*]-(g) 
RETURN g LIMIT 100 

Это дает мне график, который я хочу, но я не уверен, как форматировать вывод как табличный.

Я хочу получить mattt в результатах, и все пользователи/соглашения, находящиеся на расстоянии 1-2 градуса. И я также хочу, чтобы иметь возможность воссоздать подграф из результатов, поэтому он должен содержать информацию об отношениях.

ответ

1

[Изменено]

Этот запрос использует aggregation для возврата, в каждом результате ряда отчетливый repo интерес и сбор пользователей, которые способствовали этому:

MATCH (user:User{name:'mattt'})-->(repo) 
MATCH (repo)<--(allUsers:User) 
RETURN repo, COLLECT(allUsers) AS users; 

Этот запрос предполагает, что CONTRIBUTED отношения не содержат существенных свойств, которые необходимо вернуть.

+0

Мой запрос немного отличается, в том смысле, что я хочу, чтобы в результате был выбран исходный (Пользователь), целевой (репо) список. Важнейшей частью является то, что я хочу иметь «узел мата в результатах» и все пользователи/репозиции, находящиеся на расстоянии 1-2 градуса. –

+0

ОК, см. Мой обновленный ответ. Я также отредактировал этот вопрос, чтобы включить ваше разъяснение. – cybersam

+0

Есть ли простой способ вернуть фактические отношения, чтобы я мог перестроить график? –

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