在Hyperledger Composer中使用Array参数进行查询

时间:2018-06-11 09:59:35

标签: rest couchdb hyperledger hyperledger-composer

我希望使用数组作为参数构建查询,如下所示:

模型文件

query getCarsByModels {
    statement:
        SELECT ie.example.Car
            WHERE (_$modelArray CONTAINS model)
}

查询以检索具有指定型号的所有汽车:

undefined is a required argument

查询端点我收到此错误:{{1}},显然这是在此问题中引发(并已解决)的错误:https://github.com/hyperledger/composer/issues/2539

你有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我发现你提供的定义存在三个问题:

1)你的模型文件应该如下所示(可能是一个cut-n-paste错误?)

asset Model identified by id {
    o String id
    o String name
}

2)应该对Array字段使用操作CONTAINS。您的资产定义(对于Car)没有一个数组字段。

3)您的查询需要以正确的方式使操作数: - 您的“左手”字段必须是模型中某处定义的字段 - 例如实际的数组字段。

query getCarsByModels {
    statement:
        SELECT ie.example.Car
            WHERE ( model CONTAINS _$model )
}

你的模型将在哪里

asset Car identified by id {
    o String id
    --> Model[] model    // or `o Model[] model`
}

我不得不问 - 为什么你需要一个数组 - 当你可以简单地做:

query getCarsByModels {
    statement:
        SELECT ie.example.Car
            WHERE ( model == _$model )
}