有什麼辦法在發佈函數內的服務器上添加一個臨時額外字段?我似乎無法觀察或轉換工作。如何添加溫度。字段發佈到流星發佈
我對同一個集合「列表」有兩個訂閱。有些時候,我想訂閱某些列表,以便他們可用於聊天室列表......但問題是他們顯示在我的「列表」模板中。獨特的部分是在服務器上的性能(大型陣列)。
理想情況下,我希望我可以添加一個額外的字段,如'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();
});
謝謝!那很完美。我爲以後的讀者添加了上面的工作代碼。 – SkinnyGeek1010