【问题标题】:Neo4j get multiple items with transactional HTTP endpointNeo4j 使用事务性 HTTP 端点获取多个项目
【发布时间】:2013-12-18 14:58:54
【问题描述】:

我试图在事务性 HTTP 端点上通过带有密码查询的自定义 id 获取多个项目,但查询未返回任何结果。在当前示例中,我只包含了一个 id。如果我只运行具有该特定 ID 的密码查询,我会得到一个结果,但是当我使用事务性 http 端点尝试它时,我没有得到任何结果。怎么了?这是我在控制台中尝试查询时的样子。

:POST /db/data/transaction/commit {
    "statements": [{ "statement": "MATCH p WHERE p.id={props} return p;",
    "parameters": {"props": [{"id": "9fe2c276-3c94-43f9-bba3-9b3fd464f8da"}]}}],
    "resultDataContents": ["graph"]
 }

【问题讨论】:

    标签: neo4j cypher


    【解决方案1】:

    我认为您引用了 WHERE 错误。如果您像拥有它一样将属性分入,您的查询在替换时可能看起来像这样:

    MATCH p WHERE p.id='id:9fe2c276-3c94-43f9-bba3-9b3fd464f8da' return p
    

    试试这样的:

    {
      "statements": [
        {
          "statement": "MATCH (p) WHERE p.id IN {props} return p;",
          "parameters": {"props": ["9fe2c276-3c94-43f9-bba3-9b3fd464f8da"]}
        }
      ],
      "resultDataContents": ["graph"]
    }
    

    基本上 props 可以是任何你想要的东西,这里它是一个 JSON 数组,其中包含一个 ID 列表,你可以使用 WHEREIN 子句来搜索倍数。

    【讨论】:

    • 我似乎也无法得到任何结果。
    • 我将每个 id 放在自己的语句/查询中,至少这样可行。
    • 好的,我看到了上面的问题并修复了它,这是因为 props 在这里是一个数组,但是您要求的东西可以与 id 列表一起使用。
    • 我已经更新了我的代码,它应该适用于单个和多个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多