Hyperledger fabric composer rest服务器中的查询筛选器

Hyperledger fabric composer rest服务器中的查询筛选器,hyperledger-fabric,hyperledger,strongloop,hyperledger-composer,loopback,Hyperledger Fabric,Hyperledger,Strongloop,Hyperledger Composer,Loopback,我在composer rest服务器中遇到查询问题 我正在构建这样一个过滤器: { "where": { "and": [ { "origin": "web" }, { "affiliate": "resource:org.acme.affiliates.Affiliate#2" }, { "createdAt": {

我在composer rest服务器中遇到查询问题

我正在构建这样一个过滤器:

{
    "where": {
        "and": [
        {
            "origin": "web"
        },
        {
            "affiliate": "resource:org.acme.affiliates.Affiliate#2"
        },
        {
            "createdAt": {
            "gte": "2018-01-01"
            }
        },
        {
            "createdAt": {
            "lte": "2018-06-07"
            }
        }
        ]
    }
}
请求:

curl -X GET --header 'Accept: application/json' 'http://localhost:3000/api/User?filter=%7B%22where%22%3A%7B%22and%22%3A%5B%7B%22origin%22%3A%22web%22%7D%2C%7B%22affiliate%22%3A%22resource%3Aorg.acme.affiliates.Affiliate%232%22%7D%2C%7B%22createdAt%22%3A%7B%22gte%22%3A%222018-01-01%22%2C%22lte%22%3A%222018-06-07%22%7D%7D%5D%7D%7D'
答复:

[
    {
        "$class": "org.acme.affiliates.User",
        "affiliate": "resource:org.acme.affiliates.Affiliate#2",
        "userId": "14",
        "email": "diego@duncan.com",
        "firstName": "diego",
        "lastName": "duncan",
        "createdAt": "2018-04-20T20:48:08.151Z",
        "origin": "web"
    },
    {
        "$class": "org.acme.affiliates.User",
        "affiliate": "resource:org.acme.affiliates.Affiliate#1",
        "userId": "15",
        "email": "diego@algo.com",
        "firstName": "diego",
        "lastName": "algo",
        "createdAt": "2018-04-20T20:53:40.720Z",
        "origin": "web"
    }
]
如您所见,过滤器不起作用,因为出现了附属机构#1。 我在没有createdAt过滤器的情况下进行了测试,效果很好,然后在没有附属公司的情况下进行了测试,效果也很好。我用createdAt代替gte和lte进行了测试,结果都是错误的

hlfv1


composer rest server v0.16.6

这是一个环回过滤器问题,很可能与日期范围比较有关。(其他的比较正如你所写的那样很好)

此处的建议->建议您需要使用
between
操作符来代替datetime。乙二醇

{"where":{"createdAt":{"between": ['2018-01-05 10:00', '2018-05-10 10:00']}}}

这是一个环回过滤器问题,很可能与日期范围比较有关。(其他的比较正如你所写的那样很好)

此处的建议->建议您需要使用
between
操作符来代替datetime。乙二醇

{"where":{"createdAt":{"between": ['2018-01-05 10:00', '2018-05-10 10:00']}}}

我回答我自己的问题:

我使用的是hlfv1和composer 0.16.6


更新到hlfv11和composer 0.19.8后,错误已修复。

我回答自己的问题:

我使用的是hlfv1和composer 0.16.6

更新到hlfv11和composer 0.19.8后,错误被修复。

我已经用between测试过,但不起作用,
{“where”:{“and”:[{“affiliate”:“resource:org.acme.affiliates.affiliates#2},{“createdAt”:{“between”:[“2018-01-06”,“2018-04-20”]},{“origin”:“web”}}}
谢谢你的回答。我已经用between测试过,但不起作用,
{“where”:{“and”:[{“affiliate”:“resource:org.acme.affiliates.affiliates#2”},{“createdAt”:{“between”:[“2018-01-06”,“2018-04-20”]},{“origin”:“web”}}
感谢您的回答。