私は 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>
なぜこれが起こっているのですか?
助けてくれてありがとう!