按字符串排序Neo4j中的属性值和分页

时间:2016-03-12 17:19:45

标签: neo4j pagination

我正在使用neo4j来创建社交网络应用程序。数据模型在两个FRIEND节点之间具有USER关系。我需要通过displayName(唯一索引)订购我的所有朋友。

我需要对此查询进行分页。我将从上一个查询结果中获取的列表中发送姓氏。我想将每个页面限制为20个名字。

MATCH (u:USER{displayName:{id}})-[:FRIEND]-(f:USER)
RETURN f
ORDER BY f.displayName
LIMIT 20;

最好的方法是什么? SKIPSKIP 0SKIP 1*20SKIP 2*20,...

2 个答案:

答案 0 :(得分:0)

您可以这样使用查询:

ORDER BY f.displayName LIMIT START_POSITION , LAST_POSITION;

例如:

ORDER BY f.displayName LIMIT 0 , 20;
ORDER BY f.displayName LIMIT 21 , 40;

答案 1 :(得分:0)

是的,您可以使用SKIP子句来执行您想要的操作。在下文中,我假设您提供page值(从0开始)作为参数。

MATCH (u:USER{displayName:{id}})-[:FRIEND]-(f:USER)
RETURN f
ORDER BY f.displayName
SKIP {page} * 20
LIMIT 20;

请注意,如果朋友列表在分页期间可以更改,则此技术并非万无一失。