温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Hyperledger composer查询语言怎么用

发布时间:2021-12-06 14:55:16 来源:亿速云 阅读:183 作者:小新 栏目:互联网科技

这篇文章主要介绍Hyperledger composer查询语言怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

    1、概念理解

    Hyperledger Composer中的查询以定制查询语言编写。查询queries.qry在业务网络定义中的一个称为()的查询文件中定义。

    所有查询都必须包含descriptionstatement属性。

    该description属性是描述查询功能的字符串。它必须包含但可以包含任何东西。

statement属性包含查询的定义规则,并且可以具有以下运算符:

  • SELECT 是强制性操作员,默认情况下定义要返回的注册表和资产或参与者类型。

  • FROM 是一个可选运算符,它定义了一个不同的注册表来进行查询

  • WHERE 是一个可选运算符,它定义了要应用于注册表数据的条件。

  • AND 是定义附加条件的可选运算符。

  • OR 是可选运营商,它定义了替代条件。

  • CONTAINS 是一个可选运算符,它定义数组值的条件

  • ORDER BY 是定义排序或结果的可选运算符。

  • SKIP 是一个可选运算符,用于定义要跳过的结果数量。

  • LIMIT 是一个可选运算符,它定义了从查询返回的最大结果数量,默认情况下,极限值设置为25。

注:如果您使用Hyperledger fabricV1.1或以下时,LIMITSKIP将无法正常工作,有路过的PARAMS到CouchDB的织物上的问题。参考Hyperledger Fabric问题:FAB-2809

    2、示例查询 

    此查询返回年龄小于所提供参数 firstName为“Dan” 的默认注册表中的所有驱动程序,只要其姓氏不是“Selman”。实际上,这个查询返回所有没有姓氏“Selman”的驱动程序,只要它们在定义的年龄之下,或者具有firstName Dan,并且按lastName升序和firstName升序来命令结果。

query Q20{
    description: "Select all drivers younger than the supplied age parameter or who are named Dan and whose lastName is not Selman, ordered from A-Z by firstName"
    statement:
        SELECT org.example.Driver
            WHERE ((age < _$ageParam OR firstName == 'Dan') AND (lastName != 'Selman'))
                ORDER BY [lastName ASC, firstName ASC]
}
  3、查询中的参数

    查询可以使用运行查询时必须提供的未定义参数编写。例如,以下查询将返回age属性大于提供的参数的所有驱动程序:

query Q17 {
    description: "Select all drivers aged older than PARAM"
    statement:
        SELECT org.example.Driver
            WHERE (_$ageParam < age)
}
4、示例包含查询

    该CONTAINS过滤器用于搜索节点中的数组字段。下面的查询返回所有获得准时和稳定驾驶证的驾驶员。考虑到徽章在驾驶员参与者中是阵列类型的。

query Q18 {
    description: "Select all drivers who has the following interests"
    statement:
        SELECT org.example.Driver
            WHERE (badges CONTAINS ['punctual', 'steady-driving'])
}

以上是“Hyperledger composer查询语言怎么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI