嗨,我正在學習 Neo4j 資料庫,我遇到了其中一個查詢的問題,因為它似乎沒有回傳有效的輸出。這是我的完整資料集
查詢給出的問題是MATCH (usr:USER)-[:KNOWS]->(lang:SKILL) where lang.name="Python" AND lang.name="FastAPI" return usr,預期的輸出是Vibhav節點。但是它沒有回傳任何值
請幫助我理解這一點。提前致謝!!
uj5u.com熱心網友回復:
您在同一個節點上設定兩個謂詞,這將不起作用,因為單個節點不能有兩個名稱。你需要做的是:
MATCH (lang2:SKILL)<-[:KNOWS]-(usr:USER)-[:KNOWS]->(lang:SKILL)
where lang.name="Python" AND lang2.name="FastAPI"
return usr
uj5u.com熱心網友回復:
從可視化中我們可以看到,有些人擁有不止一種語言技能。因此,您可以使用 OR 邏輯并計算回傳值:
MATCH (usr:USER)-[r:KNOWS]->(lang:SKILL) where lang.name="Python" OR lang2.name="FastAPI" with urs, count(*) as ct with usr where ct=2回傳用戶名
這可能比 Tomaz 的建議運行得更快……您必須對其進行測驗。這假設您不會對技能節點有重復的邊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/412264.html
標籤:
