我想在 neo4j 中获取某个查询结果的索引,比如我想获取某个 personName 在所有查询结果中的索引。返回所有数据后再在程序中进行处理是一种方法,但是如果查询结果较大,这种方法就不太适用了。下面是在 spring-data-neo4j 中的实现。


    @Query("MATCH (p:BaseNode:Person) " +
            "WITH p ORDER BY p.nodeId " +
            "WITH COLLECT(p) AS persons " +
            "UNWIND RANGE(0, SIZE(persons) - 1) AS idx " +
            "WITH persons[idx] AS person, idx " +
            "WHERE person.name = {personName} " +
            "RETURN idx")
    Integer getPersonIndex(String personName);