1

簡易版の投稿をユーザーに公開する必要があります。各投稿には「いいね」配列が含まれており、その投稿に「いいね」/「いいね」を付けなかったすべてのユーザーが含まれます。次に例を示します。

[
    { 
        _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;
  })
});

各ユーザー内の「いいね」データを含む構造を変更できることはわかっていますが、通常、投稿は短命になるように設計されているため、そのデータを各投稿内に保持することをお勧めします。

4

1 に答える 1