3
考慮以下代碼:Meteor.publish不更新客戶端時的數組用於查詢
Meteor.publish("Children", function (id) {
// Find all the items that are children of an item that I am sharing
//
var sharing = Items.find({$and : [{_id:id},{sharing:{$elemMatch: {user_id:this.userId}}}]}).fetch();
var shared_children = [];
sharing.forEach(function(share){
share.children.forEach(function(child){
shared_children.push(child.id);
});
});
return Items.find({_id:{$in : shared_children}});
});
在我Meteor.publish,我動態生成的ID的數組在我的.find
使用。它適用於手動查詢數據,但是當我向「共享」字段添加新元素時,只有添加了該字段的客戶端纔會顯示更新。其他正在查看相同元素的客戶端不會獲得從服務器發送的更新值。他們只需更新已有的minimongo數據庫中的任何內容即可。服務器端MongoDB確實顯示新條目,但我無法在除創建它之外的任何客戶端上查詢它。
問題是我的.find
正在使用計算值數組,因此依賴關係系統沒有再次調用我的發佈事件?