Neo4j Cypher查询以获取追随者创建的帖子
我正在创建一个类似Facebook的应用程序。这是一个人们可以分享产品和产品集合的应用程序。在“创建一个POST”弹出窗口中,人们可以选择一个产品或一个集合(产品组,但把它看作一个单独的对象)或者仅仅是文本来创建一个帖子。我需要获取我的追随者创建的帖子 每个帖子都有一个PRODUCT、COLLECTION或TEXT类型的属性,以指示帖子的类型 在我的neo4j数据库中,有一个Post对象、产品对象、集合对象和用户对象。 创建帖子时,将在它们之间创建关系Neo4j Cypher查询以获取追随者创建的帖子,neo4j,cypher,Neo4j,Cypher,我正在创建一个类似Facebook的应用程序。这是一个人们可以分享产品和产品集合的应用程序。在“创建一个POST”弹出窗口中,人们可以选择一个产品或一个集合(产品组,但把它看作一个单独的对象)或者仅仅是文本来创建一个帖子。我需要获取我的追随者创建的帖子 每个帖子都有一个PRODUCT、COLLECTION或TEXT类型的属性,以指示帖子的类型 在我的neo4j数据库中,有一个Post对象、产品对象、集合对象和用户对象。 创建帖子时,将在它们之间创建关系 (post)-[:CREATED_BY]-
(post)-[:CREATED_BY]->(USER)
(post{type:"PRODUCT"})-[:INCLUDES]->(product)
(post{type:"COLLECTION})-[:INCLUDES]->(collection)
这就是我试图得到的“产品”类型的帖子。它显示了一个错误。但我只是想对我们的财产有个基本的了解
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
您的子句没有指定需要结转到查询其余部分的所有变量。此外,至少有一个输入错误(缺少逗号)
事实上,您的查询甚至不需要任何带有子句的。它也不需要收集
列表,只需立即展开它即可
此查询应能更好地工作:
MATCH (user:User{lastName: "mylastname"})-[:FOLLOWS {status: "accepted"}]->(following)
OPTIONAL MATCH (post:Post {type: "PRODUCT"})-[r:CREATED_BY]->(following)
OPTIONAL MATCH (post)-[:INCLUDES]->(product:Product)
RETURN {post:post, datetime: r.datetime, type:"PRODUCT", product:product, user: following} AS row
ORDER BY row.datetime DESC
LIMIT 10
您看到的错误是什么?集合是如何定义的?在图表中,是否有与多个产品相关的集合?