超账结构链码分页问题

时间:2018-09-06 06:43:25

标签: hyperledger-fabric hyperledger

我使用芒果查询服务器查询数据,例如:{“ selector”:{“ number”:10},“ limit”:3,“ skip”:2}

但是参数:'limit'和'skip'不起作用。查询计数的结果不是3。我想执行分页操作。

var queryString = `{"selector":{"number":10},"limit":3,"skip":2}`
resultsIterator, err := stub.GetQueryResult(queryString)
if err != nil{
    log.Error(model.ERRNMCC0006)
    return nil, err, model.ERRNMCC0006
}
defer resultsIterator.Close()

var resArr []string

for resultsIterator.HasNext() {
    queryResponse, err := resultsIterator.Next()
    if err != nil{
        log.Error(model.ERRNMCC0007)
        return nil, err, model.ERRNMCC0007
    }

    var buffer bytes.Buffer
    buffer.WriteString(string(queryResponse.Value))

    resArr = append(resArr, buffer.String())
}

1 个答案:

答案 0 :(得分:0)

CouchDB实现去除了查询中的“限制”和“跳过”值,并用对等方的queryLimit配置中设置的值替换了“限制”。跳过始终重置为0。
https://jira.hyperledger.org/browse/FAB-5369

对于(v1.3)中的分页,您可以使用类似
的功能 GetStateByRangeWithPagination() GetStateByPartialCompositeKeyWithPagination() GetQueryResultWithPagination()

您必须传递上一个查询结果中的pageSize和书签。
注意:此功能在V1.3以下版本不可用

https://jira.hyperledger.org/browse/FAB-2809

https://docs.google.com/document/d/1AzcVjVbuvZGRozfNe3ksIpK-cBMlhhbGOUZhg2bzPW8/edit

https://godoc.org/github.com/hyperledger/fabric/core/chaincode/shim#ChaincodeStub.GetQueryResultWithPagination