0
我希望我的朋友與友誼狀態的相互數。我爲每個用戶創建了節點,並創建了它們之間屬性的關係。根據以下查詢,我找到了我想要的結果。在這個測試用例中,我的登錄用戶ID = 1,我想搜索那些從字母'dh'開始的用戶。所以,我的查詢如下。加入結果集
1st Query : which is returned all users with specific given keyword.
--------------------------------------------------------------------
START other=node(*)
WHERE other.FirstName =~ "(?i)dh.*" AND other.UserID <> 1
WITH other, me=node:node_auto_index(UserID = '1')
RETURN other.UserID, other.UserName, other.FirstName, other.LastName, other.ImagePath
LIMIT 100;
該查詢返回了我所有的用戶開始使用「衛生署」 現在,我想我的登錄用戶之間友誼的地位和本搜索用戶。所以,我做這個如下:
2nd Query : which is returned approvalstatus between user1 and other
--------------------------------------------------------------------
START me=node:node_auto_index(UserID = '1')
MATCH me-[myR:friends]-(x)
RETURN x.UserID, myR.ApprovalStatus
ORDER BY x.UserID
最後,我需要按照下面的查詢用戶1和其他人之間的共同好友數。
3rd Query : which is returned mutual count between user1 and other
------------------------------------------------------------------
START me=node:node_auto_index(UserID = '1'), other=node(*)
MATCH pMutualFriends=me-[r:friends]-mf-[r1:friends]-other
WHERE r.ApprovalStatus = 1
AND r1.ApprovalStatus = 1
AND other.FirstName =~ "(?i)dh.*" AND other.UserID <> 1
RETURN other.UserID, COUNT(pMutualFriends) AS mutualCount
ORDER BY other.UserID
現在我想加入所有這個查詢,就像我們在RDBMS中一樣。表示結果集1st應該返回所有記錄,並加入第二個結果集&。
我該怎麼做?
謝謝@愛德華,您的查詢看起來對我非常有用。但有一件事是不存在的。我需要以'dh'開頭的所有節點。這裏在你的查詢中只返回連接到用戶1的那些節點,而我也想從關係中獲得「ApprovalStatus」屬性。你能幫我取得理想的結果嗎? –
嗨@edward,我們可以用userid加入3個結果集嗎?像RDBMS一樣加入。所以,所有節點都來自結果1,結果2有'ApprovalStatus',結果3來自'MutualCount'。你明白我的意思了嗎?等待你的回覆。謝謝。 –
我正在努力理解您所要求的數據問題。它是「查找所有名稱以'dh'開頭的用戶,並將他們與朋友分享的每個人的共同朋友計數返回給他們。」? – Edward