首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >composer rest服务器中的查询过滤器

composer rest服务器中的查询过滤器
EN

Stack Overflow用户
提问于 2018-06-08 09:56:22
回答 2查看 395关注 0票数 1

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

我正在构建一个过滤器,如下所示:

代码语言:javascript
复制
{
    "where": {
        "and": [
        {
            "origin": "web"
        },
        {
            "affiliate": "resource:org.acme.affiliates.Affiliate#2"
        },
        {
            "createdAt": {
            "gte": "2018-01-01"
            }
        },
        {
            "createdAt": {
            "lte": "2018-06-07"
            }
        }
        ]
    }
}

请求:

代码语言:javascript
复制
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'

响应:

代码语言:javascript
复制
[
    {
        "$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"
    }
]

如您所见,过滤器不工作是因为出现了Affiliate#1。我在没有createdAt过滤器的情况下进行了测试,并且工作得很好,然后我在没有联盟的情况下进行了测试,也工作得很好。我用createdAt测试了range,而不是gte和lte,得到了同样错误的结果。

hlfv1

composer rest服务器v0.16.6

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-09 02:58:56

我回答我自己的问题:

我使用的是hlfv1和composer 0.16.6

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

票数 2
EN

Stack Overflow用户

发布于 2018-06-08 18:34:45

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

这里的建议是-> https://github.com/strongloop/loopback-connector-mongodb/issues/176建议您需要使用between运算符来代替DateTimes。例如

代码语言:javascript
复制
{"where":{"createdAt":{"between": ['2018-01-05 10:00', '2018-05-10 10:00']}}}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50752323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档