首页 > 解决方案 > Hyperledger Fabric 中不区分大小写的正则表达式

问题描述

我正在尝试在用节点编写的超级账本结构链代码中使用 $regex 进行不区分大小写的搜索。我的查询如下所示:

    const title = RegExp('Simple Title', 'i')

    const query = { selector: {  
          docType: DocType.someType, 
          title: { $regex: title }} 
     }

我还有许多其他查询,例如使用 erlang 语法:

    const title = 'Simple Title'

    const query = { selector: {
          docType: DocType.someType, 
          title: { $regex: `(?i)${title}` }} 
        }

...或提供选项道具:

    const title = 'Simple Title'

    const query = { selector: {
          docType: DocType.someType, 
          title: { $regex: title, $options: 'i' }} 
        }

但是,似乎没有任何效果。它要么返回所有记录,要么返回错误。是我做错了什么还是面料不支持这样的查询?

我知道面料文档建议不要使用正则表达式。

标签: node.jsregexcouchdbhyperledger-fabric

解决方案


我做了一些更多的测试,并意识到这个问题只发生在使用'@theledger/fabric-mock-stub' npm 包的测试中。即使测试失败,部署的链码也能按预期工作。我认为这不是超级账本的问题,而是“@theledger/fabric-mock-stub”包中的某种错误。


推荐阅读