【问题标题】:Unable to apply skip, limit and order clauses in Neo4j using rest cypher无法使用 rest cypher 在 Neo4j 中应用跳过、限制和排序子句
【发布时间】:2015-02-14 18:20:51
【问题描述】:

我在 Grails 中使用 Neo4j 2.1.5,使用依赖 neo4j-rest-graphdb:2.0.1 并使用

查询我的数据库

RestAPI restapi = new RestAPIFacade("http://localhost:7474/db/data") RestCypherQueryEngine rcqer=new RestCypherQueryEngine(restapi)

我创建了一个参数列表

Map<String, String> paramVal = new HashMap<>(); paramVal.put('limit', 10); paramVal.put('skip', 0); paramVal.put('order', 'name');

我的查询如下所示

String query = "match (c:MyLabel) return id(c) as Id, c.name as name skip ${param}.skip limit ${param}.limit;

像这样执行查询

result = rcqer.query(query,org.neo4j.helpers.collection.MapUtil.map("param",paramVal))"

这显示错误Invalid input '.': expected whitespace, Limit, LOAD CSV,..... 但是,当参数仅在 where 子句中使用时效果很好。 此外,仅用于order by 子句时,结果也不是按顺序排列的,并且可以正常工作。

请让我知道缺少什么或者那里是否有限制。 提前致谢。

【问题讨论】:

    标签: neo4j cypher


    【解决方案1】:

    我不使用库的特定部分,但我希望您不需要直接引用 param,因为这就是 {} 语法的用途(没有美元),这将使您的查询:

    String query = "match (c:MyLabel) return id(c) as Id, c.name as name skip {skip} limit {limit}
    

    【讨论】:

    • 我已经编辑了这个问题,查询使用了预期的参数,它适用于where c.name = {param}.name等条件,但是skiplimit会出错
    猜你喜欢
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    相关资源
    最近更新 更多