2016-04-23 9 views
0

私のアプリケーションに受信トレイのセクションを構築しています。会話は、2人のパーティー、俳優、そしてクライアントの間でのみ行われます。受信トレイページユーザーを検索するために結合を使用する

I)は

をclientIdを$またはアクターIDフィールドはMeteor.userId(のことに一致するすべての「会話のドキュメントを見つけていますので、カーソルが期待通りにあるこの条件に一致するドキュメントを返します。私が俳優としてログインしていて、5人の異なるクライアントと会話したとします。これらの5つの会話文書がクライアントに送信されます。

これらの会話文書の5つのクライアントIDを取得して、サブスクリプションを作成してそれらのユーザーオブジェクトのみを返すにはどうすればよいですか?

私がこれをやりたいのは、ユーザープロファイルの画像を表示し、名前を付け、プロファイルページからリンクを提供することです。

ここに私のコードです:

公報

Meteor.publish('Conversations', function() { 
    return Conversations.find({$or: [{'clientId': this.userId}, {'actorId': this.userId}]}); 
}); 

ルート/サブスクリ

// Inbox 
    Router.route('/inbox', { 
    name: 'inbox', 
    waitOn: function() { 
     return [Meteor.subscribe('Messages', this.params._id), Meteor.subscribe('Conversations')] 
    } 
    }); 

答えて

0

私はこれらの技術をテストしていませんが、私はあなたがこれらのいずれかを見ていると信じて。 $lookup aggregationを用い

  1. db.small_collection.find()(これは2に基づいsongleコレクションを行う)のforEach(関数(OBJ){ db.big_collection.find(OBJ) })。
関連する問題