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 (друг друга)