2017-08-28 2 views
1

J'ai une requête nommée qui a une clause ORDER BY:ORDER BY ne fonctionne pas dans la requête du nom

`query OrdersByRequesterSort { 
    description: "Select all orders by requester" 
    statement: 
     SELECT org.test.sample.Order 
      WHERE (requester == _$requesterParam) 
      ORDER BY [placeTimestamp DESC] 
}` 

que je patterened après une requête que j'ai vu ici:

https://hyperledger.github.io/composer/reference/query-language.html

Je reçois l'erreur suivante lorsque je tente d'exécuter cette requête:

` 
    { 
    "error": { 
    "statusCode": 500, 
    "name": "Error", 
    "message": "Error trying to query chaincode. Error: chaincode error (status: 500, message: Error: http: read on closed response body)", 
    "stack": "Error: Error trying to query chaincode. Error: chaincode error (status: 500, message: Error: http: read on closed response body)\n at channel.queryByChaincode.then.catch (/Users/bower/.nvm/versions/node/v6.3.0/lib/node_modules/composer-rest-server/node_modules/composer-connector-hlfv1/lib/hlfconnection.js:779:34)" 
    } 
}` 

Am Je fais quelque chose de mal? Est-ce supporté?

Merci d'avance.

Répondre

1

Pour mon réseau, je commande la requête de retour de HistorianRecord par l'horodatage:

query getAllHistorianRecords { 
    description: "getTradeRelatedHistorianRecords" 
    statement: 
    SELECT org.hyperledger.composer.system.HistorianRecord 
     WHERE (transactionTimestamp > '0000-01-01T00:00:00.000Z') 
     ORDER BY [transactionTimestamp ASC] 
} 

Pour faire ce travail de déclaration ORDER BY je devais créer un index CouchDB. Si vous avez utilisé les scripts pour créer votre structure, votre base de données devrait être au http://localhost:5984/_utils/#database/composerchannel/_all_docs.

curl -X POST --header 'Content-Type: application/json' --header 
'Accept: application/json' -d ' 
{ 
    "index": { 
    "fields": [ 
     { 
     "data.transactionTimestamp": "asc" 
     } 
    ] 
    }, 
    "type": "json" 
}' 'http://localhost:5984/composerchannel/_index' 

Cette boucle va créer un index que la requête peut utiliser pour activer ORDER BY