neo4j中的密码限制,包括重复的行

时间:2015-08-13 05:30:44

标签: php neo4j cypher neo4jphp

将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个帖子和修剪,但这显然似乎不对哈哈

1 个答案:

答案 0 :(得分:1)

@FrobberOfBits在对该问题的评论中提出的内容略有不同。

使用aggregation时,您可以创建一个元素为comment和{的集合,而不是创建两个集合(一个用于commentAuthor,另一个用于comment)。 {1}}对。

commentAuthor