Я создал 5 узлов в neo4j следующим образом.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
Я пробовал запрос cypher, но я не добился успеха.
Что запрос вы пробовали? Можете ли вы поделиться этим? – Luanne
Спасибо @Luanne. Я попытался выполнить следующий запрос: START user = node: node_auto_index («userid: *»), me = node: node_auto_index (userid = '92') ГДЕ пользователь <> me С пользователем MATCH pMutualFriends = me - [: friends ] -> mf <- [?: friends] -user RETURN user.userid, user.UserName, COUNT (pMutualFriends) As MutualCount Заказ по MutualCount desc; Я забыл поставить «?» в отношениях до, что я исправил. У меня есть результат, которого я ожидал, но я не уверен. Правильно это или нет? –
Итак, вы ищете пользователя U, найдите всех друзей друзей U и количество друзей U, связанных с друзьями друзей? Не знаете, почему E появляется в вашем примере, потому что с вами нет друзей. Возможно, я неправильно понял цель вашего запроса? – Luanne