strong循环环回REST查询和/或与之结合

strong循环环回REST查询和/或与之结合,rest,strongloop,between,loopback,Rest,Strongloop,Between,Loopback,我有一个具有startDate和endDate属性的简单模型对象 我似乎无法使用RESTAPI同时使用“and/or”和“between”进行查询。我想查询“开始日期范围”或“结束日期范围”。我本以为以下查询会起作用: ?filter[where][or][0][event.startDate][between][0]=2017-01-15&filter[where][or][0][event.startDate][between][1]=2017-01-22&filter[wh

我有一个具有startDate和endDate属性的简单模型对象

我似乎无法使用RESTAPI同时使用“and/or”和“between”进行查询。我想查询“开始日期范围”或“结束日期范围”。我本以为以下查询会起作用:

?filter[where][or][0][event.startDate][between][0]=2017-01-15&filter[where][or][0][event.startDate][between][1]=2017-01-22&filter[where][or][1][event.endDate][between][0]=2017-01-15&filter[where][or][1][event.endDate][between][1]=2017-01-22
理想情况下,我希望在event.startDate和event.endDate之间进行查询,但环回不喜欢以下查询:

?filter[where][event.startDate][between][0]=2017-01-15&filter[where][event.endDate][between][1]=2017-01-22
这些查询独立工作,效果很好:

?filter[where][event.startDate][between][0]=2017-01-15&filter[where][event.startDate][between][1]=2017-01-22

?filter[where][event.endDate][between][0]=2017-01-15&filter[where][event.endDate][between][1]=2017-01-22
以下是我的模型定义:


models/event.json

{
  "name": "event",
  "plural": "events",
  "base": "PersistedModel",
  "idInjection": true,
  "options": {
    "validateUpsert": true
  },
  "properties": {
    "name": {
      "type": "string",
      "required": false
    },
    "startDate": {
      "type": "date",
      "required": false
    },
    "endDate": {
      "type": "date",
      "required": false
    }
  },
  "validations": [],
  "relations": {},
  "acls": [],
  "methods": {}
}

在这种情况下,我也无法使其余的查询工作

最终,我们不得不求助于通过字符串化JSON构建查询,请参见

像这样的

let过滤器={
其中:{
或:[
{
“事件开始日期”:{
介于:['2017-01-15','2017-01-22']
}
},
{
“event.endDate”:{
介于:['2017-01-15','2017-01-22']
}
}
]
}
};
让url=`/api?filter=${JSON.stringify(filter)}`;
实际上,这也使查询构建变得简单多了