Hyperledger Composer Queryの中でORDER BY が使えない
Hyperledger Composerでクエリ
Hyperledger Composer ではSQLライクにブロックチェーンネットワークから特定のアセットや参加者を取得するためのクエリが準備できる。
(クエリを使う場合、channelに参加するpeerのDBをデフォルトのlevelDBからCouchDBに変更しておく必要がある。)
クエリは queries.qry
の中に以下のように定義する。
query sampleQuery{ description: "sampleQuery" statement: SELECT jp.org.acme.sampleAsset WHERE (_$parameter < fieldName) ORDER BY [fieldName ASC] LIMIT 25 }
ただし、しばらくORDER BYを使うとエラーとなっていた。
解決法
channelに参加しているpeerに紐付いたCouchDBのコンテナ内で以下のコマンドを叩けばOK.
$ curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d ' { "index": { "fields": [ { "data.<FIELD_NAME>": "<asc or desc>" } ] }, "type": "json" }' 'http://localhost:5984/<CHANNEL_NAME>/_index'