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

Neo4j中按字符串属性值排序和分页,neo4j,pagination,Neo4j,Pagination,我正在使用neo4j创建一个社交网络应用程序。数据模型在两个USER节点之间具有FRIEND关系。我需要让我所有的朋友按displayName(唯一索引)排序 我需要对此查询进行分页。我将发送从以前的查询结果中获得的列表中的姓氏。我想把每页的名字限制在20个以内 MATCH (u:USER{displayName:{id}})-[:FRIEND]-(f:USER) RETURN f ORDER BY f.displayName LIMIT 20; 最好的方法是什么?将跳过工作在这里,发送跳过0

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

我需要对此查询进行分页。我将发送从以前的查询结果中获得的列表中的姓氏。我想把每页的名字限制在20个以内

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

最好的方法是什么?将
跳过
工作在这里,发送
跳过0
跳过1*20
跳过2*20
,…

您可以这样使用查询我认为:

ORDER BY f.displayName LIMIT START_POSITION , LAST_POSITION;
例如:

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

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

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

请注意,如果朋友列表在分页过程中可能发生更改,则此技术并非万无一失。

按以下顺序按f.displayName LIMIT START\u POSITION、START\u POSITION+20执行;它不起作用,neo4j中没有从和到范围的限制。我在SQL Db中使用的那个,但在neo4j中它不受支持。