【问题标题】:Show all the books in database except the ones this specific user has read neo4j显示数据库中的所有书籍,除了该特定用户已阅读 neo4j 的书籍
【发布时间】:2020-12-13 19:25:57
【问题描述】:

我在 Neo4j 中有一个简单的数据库,其中包含有关用户、他们的朋友和他们阅读的书籍的信息。我需要编写一个查询来显示特定用户的朋友阅读的所有书籍(对当前用户的推荐)。 假设我想查看名为“Sophia”的用户的朋友阅读的书籍。我如何在 neo4j 中做到这一点?

my database schema

【问题讨论】:

    标签: database neo4j recommendation-engine


    【解决方案1】:

    您应该能够通过运行以下查询来获取这些书籍:

    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
    

    【讨论】:

    • 非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 2016-04-12
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    相关资源
    最近更新 更多