2016-03-22 8 views
1

私はuser &の2つのモデルを持っていますが、ユーザーは複数の注文を持つことができます。だから、GET /users/{id}/ordersを使用して、そのユーザーに属するすべての注文を取得できます。ループバックで既存のリモートメソッドにクエリパラメータを追加する方法

HTTPリクエストにクエリパラメータを追加するにはどうすればいいですか?たとえばです。

データベースにterminatedという名前のファイルがありません。私はterminatedTimeしか保存していませんので、計算も行う必要があります。

どうすればこの問題を解決できますか?

答えて

1

あなたのお問い合わせにはwhere filterをお試しください。あなたはブール型フィールドがterminatedと呼ばれていた場合は、次のように働いているだろう: /users/{id}/orders?filter={"where":{"terminated" : true}}

をterminatedTimeが日付フィールドであると仮定すると、以下のURLは、16月 - 2016年後terminatedTimeを持つユーザーの注文を見つける必要があります。

/users/{id}/orders?filter={"where":{"terminatedTime" : {"gt": "2016-03-16T00:00:00.000Z"}}}

注:私は私のサンプルアプリケーションで同様のクエリをしようとするStrongLoop API Explorerを使用していました。使用する場所によっては、二重引用符が必要な場合とない場合があります。

+0

私はdbで 'terminated'と呼ばれるフィールドを持つ必要はありません。私はterminationTimeしか持っていませんが、値があるかどうかをチェックする必要があるので、比較は私の場合は機能しません。 –

+0

これは動作します: '/ users/{id}/orders?filter = {" where ":{" terminatedTime ":{" neq ":null}}}' –

0

モデル内のクエリ文字列にアクセスしようとすると、これが機能します。

var loopback = require('loopback'); 

module.exports = function(User) { 
var findOne = User.findOne; 

User.findOne = function(filter, cb) { 
    var context = loopback.getCurrentContext(), 
     terminated = context.active.http.req.query.terminated; 

     //order processing logic 
関連する問題