【发布时间】:2020-12-10 09:37:46
【问题描述】:
我正在创建一个类似于 Facebook 的应用程序。这是一个人们可以共享产品和产品集合的应用程序。在“创建帖子”弹出窗口中,人们可以选择产品或集合(产品组但将其视为单个对象)或仅文本来创建帖子。我需要获取我的关注者创建的帖子。
每个帖子都有一个 PRODUCT、COLLECTION 或 TEXT 类型的属性来指示它是什么类型的帖子。
在我的 neo4j 数据库中,有一个 Post 对象、product 对象、collection 对象和 user 对象。 当您创建帖子时,它们之间将创建关系。
(post)-[:CREATED_BY]->(USER)
(post{type:"PRODUCT"})-[:INCLUDES]->(product)
(post{type:"COLLECTION})-[:INCLUDES]->(collection)
这是我试图获取“产品”类型的帖子。 IT 显示错误。只是为了给出我们属性的基本概念。
MATCH (user:User{lastName: "mylastname"})-[:FOLLOWS {status: "accepted"}]->(following) WITH following
OPTIONAL MATCH (post:Post {type: "PRODUCT"})-[r:CREATED_BY]->(following) WITH post,user, r OPTIONAL
MATCH
(post)-[:INCLUDES]->(product:Product) WITH COLLECT({post:post, datetime: r.datetime,
type:"PRODUCT",product:product user: following}) as productPosts
UNWIND productPosts AS row
RETURN row
ORDER BY row.datetime DESC
SKIP 0
LIMIT 10
【问题讨论】:
-
您看到的错误是什么?集合是如何定义的?在您的图表中,您是否有与多个产品相关的集合?