2014-01-15 13 views
6

公開機能の中でサーバに一時的なフィールドを追加する方法はありますか?私は仕事に慣れたり変身したりすることができないようです。一時ファイルを追加するにはどうすればいいですか?フィールドをメテオに公開する

私は、同じコレクションの「リスト」に対して2つのサブスクリプションを持っています。特定のリスティングを購読してチャットルームのリストに利用できるようにしたいときもありますが、問題はそれらが私の「リスティング」テンプレートに表示されていることです。ユニークな部分は、パフォーマンス(大規模な配列)のためにサーバー上にありました。

理想的には、 'forChat:true'のような余分なフィールドを追加して、リストテンプレートでそのフィールドを確認し、 'forChat'フィールドを持たないリスティングのみをプルすることができます。

現在、リストのテンプレートがユーザーのIDが内部にあるかどうかを確認できるように、「好きな」&の「嫌い」の配列を送信しています。しかし、長さ〜=(ユーザー/ 2)のために、これは時間とともに(およびモバイル上で)うまく調整されません。

// ideal-ish pseudo code if we could return arrays: 

Meteor.publish('chats', function(id) { 
    lists = Listings.find(...).fetch(); 

    return lists.map(function(list){ 
     return list.forChat = true; 
    }); 
}); 

これも可能ですか?ハッキーの種類、しかし、私はすべてのリストにフィールドを追加し、他の出版物でそれを省略することができると思います。受け入れ答えを下から

の作業コード:

Meteor.publish('listingsForChats', function(id) { 
    var cursor = Listings.find(...); 

    // insert a temp `forChats:true` field to filter in listings template 
    cursor.forEach(function(doc) { 
     doc.forChats = true; 
     this.added('listings', doc._id, doc); 
    }, this); 

    this.ready(); 
}); 

答えて

関連する問題