在Hyperledger Composer中查询

San*_*ego 4 hyperledger hyperledger-composer

当我尝试进行查询时:

query PapersFromAPoll
{
    description: "retrieve all the papers from a poll"
    statement:
         SELECT org.acme.democracity.Paper 
          WHERE(poll.pollId == _$id)
}
Run Code Online (Sandbox Code Playgroud)

我无法获取任何行,这是我进行此查询的片段:

return query('PapersFromAPoll',{id : count.poll.pollId})

这很奇怪,因为当我擦除WHERE语句并且我做一个没有任何参数的简单查询时它完美地工作.

在model.cto文件中的纸张和轮询:

asset Paper identified by paperId {
    o String paperId
    o String[] fields
    --> Poll poll  //Paper related with a poll
}

asset Poll identified by pollId {
    o String pollId
    o Ask[] asks
}
Run Code Online (Sandbox Code Playgroud)

The*_*der 5

query PapersFromAPoll
{
  description: "retrieve all the papers from a poll"
  statement:
    SELECT org.acme.democracity.Paper 
      WHERE(poll == _$pollId)
}
Run Code Online (Sandbox Code Playgroud)

因此,您可以通过提供对该Poll资产的引用来过滤Poll资产.当您尝试使用pollId它进行查询时,它必须是对资源的引用resource:org.acme.democracity.Poll#{insert_id}