2017-09-18 9 views
0

まず、これが尋ねられれば申し訳ありませんが、私はこれを探してリンクをいくつか持っていますが、役に立たなかったのです。LoopackのHasAndBelongsToManyリレーションを持つフィルタ

私はCustomer EntityとConversationエンティティとメッセージを持つAngular 4で作成した簡単なチャットアプリケーションに取り組んでいます。顧客=> hasAndBelongsToMany => MongoDbコネクタとの会話。

conversation.jsonでcustomer.json

"relations": { 
    "conversations": { 
    "type": "hasAndBelongsToMany", 
    "model": "Conversation" 
    } 
} 

"relations": { 
    "customers": { 
    "type": "hasAndBelongsToMany", 
    "model": "Customer" 
    } 
} 

ではconversationIdとはcustomerId

が含まれています。この作成テーブルcustomerconversationは今基本的に私は2つの顧客IDの会話を見つけたいですので、私はフィルタを次のように試してみましたが、動作していないようで、空の配列を返します。 stomer ids。

let filter = { 
    where: { 
    and: [ 
     { 
     customers: { 
      inq: [ 
      this.customerId // = 59bb981f35fcc941e8ba64e4 
      ] 
     } 
     }, 
     { 
     customers: { 
      inq: [ 
      this.authService.getCurrentId() // = 59bb98c735fcc941e8ba68ff 
      ] 
     } 
     } 
    ] 
    } 
}; 

せず、オペレータ
let filter = { 
    where: { 
    customers: { 
     inq: [ 
     this.customerId, // 59bb981f35fcc941e8ba64e4 
     this.authService.getCurrentId() // 59bb98c735fcc941e8ba68ff 
     ] 
    } 
    } 
}; 

これら双方上記IDでなく0会話を顧客に返します。私は会話のためのインクルードフィルターを使用して特定の顧客のすべての会話を得ることができることを知っていますが、私はこの顧客と別の特定の顧客との単一の会話を望むので、フィルタリングする必要があります。

+0

これらのスニペットと角度との間に関係はありません。適切なタグを使用して、あなたの質問が正しいグループの人々に向けられるようにしてください。 –

+0

フィルタのコードはAngularアプリケーションで書かれていますが、角タグ –

+0

はまだJSONオブジェクトとして記述されており、バックエンドについての知識はありません(MongoDbに関連していると思います)有用な情報に変換する。私はAngularスキルにかなり自信がありますが、ここで何が起こっているのかわからないので、Angularには関係しません。 –

答えて

0

お客様は、最初に顧客をつかみ、リレーションシップとインクルードを使用して必要なデータを取得することで情報を取得できます。

例は、角型アプリケーションでtypescript & loopback-sdk-builderを使用してこれを記述していることを前提としています。

this.customerApi 
    .getConversations(this.authService.getCurrentId(), { 
     where: { 
     customerId: this.customerId 
    }) 
    .subscribe(result => { 
    // your logic here 

    }) 
関連する問題