2016-11-23 88 views
2

我有一個簡單的模型對象與startDate和endDate屬性。Strongloop Loopback REST查詢和/或結合使用

我似乎無法用'和/或'和'之間'使用REST api進行查詢。我想查詢'startDate範圍'或'endDate範圍之間'。我本來以爲下面的查詢會工作:

?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 

這裏是我的模型定義:


型號/ 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": {} 
} 

回答

1

我不能讓這種情況下的REST查詢工作無論是。

最終,我們不得不求助於建設通過字符串化JSON查詢,看到docs

所以,像這樣

let filter = { 
    where: { 
    or: [ 
     { 
     'event.startDate': { 
      between: ['2017-01-15', '2017-01-22'] 
     } 
     }, 
     { 
     'event.endDate': { 
      between: ['2017-01-15', '2017-01-22'] 
     } 
     } 
    ] 
    } 
}; 

let url = `/api?filter=${JSON.stringify(filter)}`; 

這也讓查詢構建簡單了很多,其實。

+0

好戲......非常靈活。 – Abhishek