Hyperledger Composer查询语言CONTAINS运算符

时间:2018-05-24 01:22:34

标签: hyperledger-fabric hyperledger-composer

这里的任何人都可以在Hyperledger Composer查询语言中使用参数而不是静态值的CONTAINS运算符示例吗?似乎无法使用这种查询:

WHERE(角色CONTAINS _ $ role)

也许我这样做是错误的。谢谢。

1 个答案:

答案 0 :(得分:0)

CONTAINS用于对阵数组字段请注意。

如果role是一个简单的字符串(在你的模型中),你不需要/使用'CONTAINS'。但是我会给你一个role作为普通字符串或角色数组中角色的例子。

如果角色定义为:

o String role

和rolesArray是:

o String[] rolesArray

以下是两种类型的查询示例:

query roleMatch {
  description: "String search"
  statement:
 SELECT org.acme.mynetwork.Trader WHERE (role == _$roleId)
}

使用CONTAINS进行数组搜索:

query roleMatchinArray {
  description: "String search in Array"
  statement:
     SELECT org.acme.mynetwork.Trader 
     WHERE (rolesArray CONTAINS == _$roleId)
}

在事务逻辑中调用查询看起来像:

return query('roleMatch', {role: 'Role1' } )
        .then(function (results) {
          for (var n = 0; n < results.length; n++) {
        // process results objects
         }
        }); // etc