我在Neo4j数据库中解决查询时遇到了一些问题。我的数据库存储有关用户,歌曲和专辑的信息。用户可以购买歌曲和专辑,也可以关注其他用户。
我从" Lisa"开始用户。我想找到购买相同风格的专辑的用户,而不是Lisa购买的专辑,但他们不会跟随Lisa(他们会推荐Lisa用户跟随他们)。
我认为该查询与此类似,但我无法找到正确的sintax来代表它。
MATCH (me:User)-[:BOUGHT]->(a:Album)
MATCH (other:User)-[:BOUGHT]->(a2:Album)
WHERE NOT (me)-[:FOLLOWS]->(other) AND me.username="Lisa"
AND other.username <> "Lisa" AND a.style=a2.style
RETURN other.username
有任何帮助吗? 非常感谢:)
答案 0 :(得分:0)
您的查询可以正常使用此数据集。我可能会误解某些东西 - 你能进一步说明问题吗?
CREATE
(u1:User {username: "Lisa"}),
(u2:User {username: "Louis"}),
(a1:Album {style: "rock"}),
(a2:Album {style: "rock"}),
(u1)-[:BOUGHT]->(a1),
(u2)-[:BOUGHT]->(a2)
我在您的查询中添加了一些美容功能:
MATCH (me:User {username: "Lisa"})-[:BOUGHT]->(a1:Album)
MATCH (other:User)-[:BOUGHT]->(a2:Album)
WHERE NOT (me)-[:FOLLOWS]->(other)
AND other.username <> "Lisa"
AND a1.style=a2.style
RETURN other.username
结果是:
╒══════════════╕
│other.username│
╞══════════════╡
│Louis │
└──────────────┘