neo4j - предложение пользователя с взаимным подсчетом

Я создал 5 узлов в neo4j следующим образом.

Node 1 {userid:1000, username: A, someOtherProperties...}
Node 2 {userid:2000, username: B, someOtherProperties...}
Node 3 {userid:3000, username: c, someOtherProperties...} 
Node 4 {userid:4000, username: D, someOtherProperties...} 
Node 5 {userid:5000, username: E, someOtherProperties...} 

Узел 1 соединен с узлами 2 и 3, а узел 2 соединен с узлами 1, 3, 4

1 -> 2
1 -> 3
2 -> 1
2 -> 3
2 -> 4
3 -> 4

Теперь я хочу предложить пользователю узел 1, который содержит тот узел, который не связан с ним самостоятельно с взаимным подсчетом. Я хочу такой результат.

node id  userid  username  mutual count
-------  ------  --------  -------------
4    4000    D         2             (which is node 2 & 3)
5    5000    E         0    

Я пробовал зашифрованный запрос, но не добился успеха.

1 ответ

Пожалуйста, попробуй

START user=node:node_auto_index(name='A'), f=node(*) 
MATCH user-[r?:FRIEND*1..2]->(f) 
WITH DISTINCT r AS friendRelation,f 
RETURN count(friendRelation),f

Который даст вам количество отношений друзей с каждым другим узлом с глубиной 2 (друг друга)

Другие вопросы по тегам