【发布时间】:2015-04-23 14:44:44
【问题描述】:
我需要向用户发布简化版的帖子。每个帖子都包含一个“喜欢”数组,其中包含所有喜欢/不喜欢该帖子的用户,例如:
[
{
_id: user_who_liked,
liked: 1 // or -1 for disliked
},
..
]
我正在尝试向订阅数组的用户发送一个简化版本,该数组仅包含他/她的喜欢:
Meteor.publish('posts', function (cat) {
var _self = this;
return Songs.find({ category: cat, postedAt: { $gte: Date.now() - 3600000 } }).forEach(function (post, index) {
if (_self.userId === post.likes[index]._id) {
// INCLUDE
} else
// REMOVE
return post;
})
});
我知道我可以更改结构,包括每个用户中的“喜欢”数据,但帖子通常设计为短暂的,最好将这些数据保留在每个帖子中。
【问题讨论】:
-
将我的答案编辑为更简单的方法。