我有一個Mongo集合的項目(項目)。我有另一個與項目相關的權限集合(item_ownership),其中一個權限存儲擁有項目的用戶的標識(owner_id)。我想獲取用戶擁有的所有項目併發布它們。 因此,理論上,我想先從'item_ownership'集合中選擇item_id,然後將其插入'items'集合的查詢中以對其進行過濾。這個過濾結果集將發佈到瀏覽器:減少流星發送給瀏覽器的Mongo記錄數量?
Items = new Mongo.Collection("items");
ItemOwnership = new Mongo.Collection("item_ownership");
Meteor.publish('items_pub', function() {
var itemOwnershipColl = ItemOwnership.find(
{
owner_id: Meteor.userId()
},
{
fields: { item_id: 1 }
}
);
// Compile list of items to return.
var item_id_array = [];
itemOwnershipColl.forEach(function (record) {
item_id_array[item_id_array.length] = record.item_id;
});
return Items.find(
{
item_id: { $in: item_id_array }
},
{
sort: {
item_order: 1
}
}
);
});
這是最好的方式去做這件事嗎?
使用此方法(以及問題的原始方法)將導致非反應性連接。我通過使用Michael Floyd建議的軟件包解決了我的問題。 – JoeTidee