【发布时间】:2014-10-23 12:40:50
【问题描述】:
我正在关注这篇文章来设置一个用户可以follow彼此的系统,也可以成为friends:http://neo4j.com/docs/stable/cypher-cookbook-newsfeed.html
用户(A)可以friend另一个用户(B),因此A自动关注B。用户A也可以followB而不将B添加为朋友。因此,应该对提要结果进行区分。如果 A 和 B 不是已确认的朋友,则 A 应该从 B 获得仅标记为公开的状态更新。如果 A 是 B 的已确认好友,则 A 应该从 B 那里获取所有状态更新。A,即使是 B 的好友,也可以取消关注他/她的订阅。 (典型的 facebook 模型?)。所以基本上我需要检查 A 关注的人并获取他们的更新。但是,在执行此操作时,我还需要检查 A 是否可以访问这些状态更新。
是否有一个简单的密码来实现这个?或者你有更好的模型?假设所有更新都是公开的,以下查询应该可以工作。如果也有friends only 的帖子,你会如何添加隐私设置维度?
MATCH (me { name: 'Joe' })-[rels:FOLLOWS*0..1]-(anotherUser)
WITH anotherUser
MATCH (anotherUser)-[:STATUS]-(latestupdate)-[:NEXT*0..1]-(statusupdates)
RETURN anotherUser.name AS name, statusupdates.date AS date, statusupdates.text AS text
ORDER BY statusupdates.date DESC LIMIT 3
【问题讨论】: