将Neo4J与Cypher一起使用
我试图获取什么本质上是用户“墙”。在这个墙上是您,您的朋友和帖子评论的帖子。
这是我目前的查询:
match (a:Account)-[:FRIEND*0..1]->(friend:Account)-[:POST]->(post:Post)
where a.uid = "u132984734sas"
optional match (post)<-[:COMMENT*0..1]-(comment:Comment)<-[:AUTHOR]-(commentAuthor:Account)
return friend,post,comment,commentAuthor
ORDER BY post.date_created DESC
LIMIT 10
请注意LIMIT 10
好吧,我有一半期待这个,但是在获取嵌套数组的东西时很像PHP中的Doctrine,这里返回一行,其中包含顶级帖子和帖子中每条评论的单个评论。
这意味着,如果有20个符合此条件且不提取评论的帖子,则会因LIMIT
条件而返回10个实际帖子
让我们说前10个结果中的一个帖子中有2条评论,现在结果集只有9个帖子而不是10个。因为第一个评论总是在第一行中返回(如果可用),它不会减损形式resultSet返回的数字,但每个帖子的每个附加评论都有。
我想在这里获得可靠的10个结果,但我不确定该怎么做。
为简洁起见,我使用Everyman\Neo4JPHP
我甚至打算通过挑选前十名结果来查询50个帖子和修剪,但这显然似乎不对哈哈
答案 0 :(得分:1)
@FrobberOfBits在对该问题的评论中提出的内容略有不同。
使用aggregation时,您可以创建一个元素为comment
和{的集合,而不是创建两个集合(一个用于commentAuthor
,另一个用于comment
)。 {1}}对。
commentAuthor