Neo4j如何实现高分制
我在一家制作社交游戏的公司工作,在那里,我们的用户可以交朋友,并且可以制作基于人气的内容,以高分显示 我试图找出我们是否可以将一些数据移动到像neo4j这样的图形数据库中,而我不知道的一件事是如何在图形数据库中实现highscore系统。我基本上想做这样的查询: 获取好友创建的电影/艺术书/照片内容列表,按最喜欢的内容排序 获取过去7天内所有用户创建的电影/艺术书/照片内容列表,按最喜欢的内容排序 为了实现这一点,我们应该做什么样的数据建模和查询 我计划要做的数据模型是将用户作为节点,并将用户制作的内容链接到用户,作为连接内容节点列表,其中最新的一个链接到用户,但我如何在这样的模型中获得高分Neo4j如何实现高分制,neo4j,graph-databases,Neo4j,Graph Databases,我在一家制作社交游戏的公司工作,在那里,我们的用户可以交朋友,并且可以制作基于人气的内容,以高分显示 我试图找出我们是否可以将一些数据移动到像neo4j这样的图形数据库中,而我不知道的一件事是如何在图形数据库中实现highscore系统。我基本上想做这样的查询: 获取好友创建的电影/艺术书/照片内容列表,按最喜欢的内容排序 获取过去7天内所有用户创建的电影/艺术书/照片内容列表,按最喜欢的内容排序 为了实现这一点,我们应该做什么样的数据建模和查询 我计划要做的数据模型是将用户作为节点,并将用户制
谢谢。这里有一种可能的型号:
(f:User {name: "Fred"})-[:CREATED]->(c:Content {created: 2345, type: "Music"})
(m:User {name: "Mary"})-[:LIKES {score:5}]->(c:Content)
(f)-[:KNOWS]->(m);
要获取自特定时间戳以来所有用户创建的内容,请按喜欢的数量降序,您可以使用以下查询。可选匹配
用于避免筛选出不喜欢的内容
MATCH (c:Content)
WHERE c.created > 1234
OPTIONAL MATCH ()-[l:LIKES]->(c)
RETURN c, COUNT(l) AS num_likes
ORDER BY num_likes DESC;
这就说明了这一点。您可以简单地进行计数(l)
,而不是收集
和长度