Node.js 如何在使用nodejs chaincode从hyperledger fabric v 1.4中的chaincode获取记录时设置偏移量和限制?

Node.js 如何在使用nodejs chaincode从hyperledger fabric v 1.4中的chaincode获取记录时设置偏移量和限制?,node.js,hyperledger-fabric,hyperledger,hyperledger-chaincode,chaincode,Node.js,Hyperledger Fabric,Hyperledger,Hyperledger Chaincode,Chaincode,我的区块链网络中有500多条记录,我想为前端的分页编写一个链码。我使用过getQueryResultWithPagination和GetStateBrangeWithPagination,但我关心的是,我希望从第90到第100条开始获取记录,这意味着10条记录,但不是从开头开始,我也不希望获取整条记录。我的链码是用nodejs编写的。我坚持这一点,非常感谢社区给我宝贵的建议 您是否希望直接跳转到页面?如果是,则不可能。链表样式分页的一个缺点是,您无法根据页码和每页的行数预先计算特定页的行数。跳转

我的区块链网络中有500多条记录,我想为前端的分页编写一个链码。我使用过getQueryResultWithPagination和GetStateBrangeWithPagination,但我关心的是,我希望从第90到第100条开始获取记录,这意味着10条记录,但不是从开头开始,我也不希望获取整条记录。我的链码是用nodejs编写的。我坚持这一点,非常感谢社区给我宝贵的建议

您是否希望直接跳转到页面?如果是,则不可能。链表样式分页的一个缺点是,您无法根据页码和每页的行数预先计算特定页的行数。跳转到一个特定的页面并不真正有效

参考请参见此处:

getQueryResultWithPagination当然只适用于CouchDB。。。因此,当使用CouchDB查询语言时,您应该能够在实际查询中指定skip参数。请注意,根据文档,在使用页面大小参数时,不会使用limit参数:

如果使用分页查询API GetStateByRangeWithPagination、GetStateByPartialCompositeKeyWithPagination和GetQueryResultWithPagination指定页面大小,则由页面大小绑定的一组结果将与书签一起返回链码。书签可以从chaincode返回给调用的客户端,客户端可以在后续查询中使用书签来接收下一个“页面”的结果


当然,要构建一个前端客户机,通过页面浏览结果,您需要将pageSize和bookmark参数都传递给getQueryResultWithPagination,您的链码函数需要将书签返回给调用者,以便可以传入以获取下一页的结果。

您是在尝试从前端分页所有结果,还是专门尝试从中开始记录N?假设我要获取从50到100的事务,如何实现?因为我不想获取所有记录,然后在前端/后端进行操作。我只想获取两个范围之间的数据。您如何识别这些事务?状态数据库存储键/值对。。。你能举一个真实的例子说明要求记录50-100意味着什么吗?分页功能允许您返回记录页。。。页面大小和书签的组合允许您在记录中移动。。。每次查询只需传入书签即可获得下一组记录。@GariSingh有没有办法引入跳转?如果我想从第一页转到第30页。我怎么能做到呢?正如我所知,我们可以在coach db查询中通过skip和limit-{selector:{},skip:100,limit:5}这在这里不起作用,页面大小和书签是与skip和limit非常相似的选项。但是,如果您想访问一些记录,这些记录假定位于100页大小的第500条记录之后,即500-600条记录之间,那么问题是先获取500条记录,然后获取书签到该点,然后使用100页大小和上面的书签获取100条记录。但这不是最优的解决方案,所以你必须使用一些基于索引的混合逻辑来更优化地查询它。请向我解释为什么这会被否决?这个答案是正确的。。。你可以使用skip、pageSize和bookmark,如果你想翻页的话。我没有否决你的答案,我尝试过你的解决方案,但没有解决我的问题。我只想跳到具体的页面,任何关于这方面的建议将不胜感激。