【发布时间】:2020-12-13 19:25:57
【问题描述】:
我在 Neo4j 中有一个简单的数据库,其中包含有关用户、他们的朋友和他们阅读的书籍的信息。我需要编写一个查询来显示特定用户的朋友阅读的所有书籍(对当前用户的推荐)。 假设我想查看名为“Sophia”的用户的朋友阅读的书籍。我如何在 neo4j 中做到这一点?
【问题讨论】:
标签: database neo4j recommendation-engine
我在 Neo4j 中有一个简单的数据库,其中包含有关用户、他们的朋友和他们阅读的书籍的信息。我需要编写一个查询来显示特定用户的朋友阅读的所有书籍(对当前用户的推荐)。 假设我想查看名为“Sophia”的用户的朋友阅读的书籍。我如何在 neo4j 中做到这一点?
【问题讨论】:
标签: database neo4j recommendation-engine
您应该能够通过运行以下查询来获取这些书籍:
MATCH (sophia: User {name: "Sophia"})-[:FRIENDS_WITH]->(friends: User)-[:READ]->(book: Book)
RETURN book
如果您只想包含 Sophia 未读过的书籍,则以下查询应该有效:
MATCH (sophia: User {name: "Sophia"})-[:FRIENDS_WITH]->(friends: User)-[:READ]->(book: Book)
WHERE NOT EXISTS ((sophia)-[:READ]->(book))
RETURN book
【讨论】: