0
我使用下面的查询,以获得用户的状态更新,并总喜欢每个已收到:Neo4j的暗号得到与“总喜欢”状态更新“就喜欢”
MATCH (n:user {username: "pewpewlasers"})-[:STATUSUPDATE|:NEXT*]->(o)
OPTIONAL MATCH (p:user)-[x:LIKED]->(o)
RETURN n, o, COUNT(p) AS totallikes
ORDER BY o.date DESC SKIP 0 LIMIT 10
这个伟大的工程,但现在我还希望获得关于特定用户是否喜欢这些状态更新的信息(以实现“不同”功能)。我试过以下,它是给我很大的(错误)的数字,即使是totallikes
MATCH (n:user {username: "pewpewlasers"})-[:STATUSUPDATE|:NEXT*]->(o)
OPTIONAL MATCH (p:user)-[:LIKED]->(o)
OPTIONAL MATCH (q:user {username: "anotherUser"})-[:LIKED]->(o)
RETURN n, o, COUNT(p) AS totallikes, COUNT(q) AS hasLiked
ORDER BY o.date DESC SKIP 0 LIMIT 10
编辑:图如下所示(橙色节点 - >用户节点,灰色的节点 - >状态更新节点):
hasLiked实际输出相同的数字,无论p.username' – pewpewlasers 2014-09-24 06:57:05
你能澄清的'totallikes你所说的“不管p.username'的'”是什么意思?另外,实际上是否有超过1个''用户'''相同'o''? – cybersam 2014-09-24 16:32:35
嗨,是的,可能会有更多的用户喜欢相同的“o”。 'o'是一个状态更新节点,可以有很多喜欢的。即使当'anotherUser'改变时,totallikes和hasLiked也会给出相同的值。 – pewpewlasers 2014-09-24 16:37:11