0

私は XQuery の初心者であり、データベース (Neo4j) にクエリを実行するために、XQuery を介して次の JSON ブロックを送信する必要があります。

{
    "query" : "START root=node(id_number) MATCH (root)-[:RELATED_TO]->(x) RETURN x.firstName, x.lastName",
    "params" : {
        "id_number" : "1"
    }
}

だから私は試しました:

let $payload := '{
    "query" : "START root=node(id_number) MATCH (root)-[:RELATED_TO]->(x) RETURN x.firstName, x.lastName",
    "params" : {
        "id_number" : "1"
    }
}'

次のエラーが表示されます。

400不正な要求。構文が正しくないため、リクエストを実行できません。エラーの種類: XQuery エンジン エラー。HTTP エラー。接続文字列: 。

" と ' を入れ替えたり、その逆も試してみましたが、同じエラーが発生しました。

XQueryでJSONブロックを渡すための正しい構文は何ですか?

アドバイスをいただければ幸いです。

======================更新======================

Zorba XQuery Processor に切り替えましたが、まだ JSON クエリを渡す際に問題が発生しています。私は次のものを持っています:

import module namespace json = 'http://www.zorba-xquery.com/modules/json';
import module namespace zorba-rest = "http://www.zorba-xquery.com/zorba/rest-functions";
declare copy-namespaces no-preserve, no-inherit;

let $jsonresult := zorba-rest:post("http://localhost:7474/db/data/cypher",
    <payload content-type="multipart/form-data">
        <part name="query">START root=node(1) MATCH (root)-[:RELATED_TO]->(x) RETURN x.firstName, x.lastName</part>
    </payload>,
    <headers>
        <header name="Accept">application/json; charset=UTF-8</header>
        <header name="Content-Type">application/json</header>
    </headers>)

let $result := json:parse($jsonresult)

return
<Table>
    <Row>
        <result>{
            $result
        }</result>
    </Row>
</Table>

今回は幸運にもエラーは発生しませんでしたが、空のデータセットが返されます (4 行が返されるはずです)。

<Table>
  <Row>
    <result>
      <json type="object" />
    </result>
  </Row>
</Table>

なぜこれが起こっているのですか?

助けてくれてありがとう!

4

0 に答える 0