这里的任何人都可以在Hyperledger Composer查询语言中使用参数而不是静态值的CONTAINS运算符示例吗?似乎无法使用这种查询:
WHERE(角色CONTAINS _ $ role)
也许我这样做是错误的。谢谢。
答案 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