获取Meteor Collection中的最后一项

时间:2014-11-26 20:02:31

标签: meteor

我有一个Threads集合,我想在每个帖子中收到最后一篇帖子并发布。

任何人都知道正确的查询吗?

我试图做这样的事情,但它没有用。因为返回值不是光标。

var messages = Messages.find({ threadId: { $in: threadIds }});
// We found the messages. Now retrieve the last ones per thread.
return _.map(threadIds, function(threadId) {
  console.log('Get %s', threadId);
  Messages.find({ threadId: threadId }, {
    limit: 1, sort: { createdAt: -1 }
  });
});

1 个答案:

答案 0 :(得分:0)

我相信这个解决方案对我有用。

我确实有一个抱怨,即如果在线程中添加新消息,我不确定该方法是否会运行。

var messages = Messages.find({ threadId: { $in: threadIds }});

    // We found the messages. Now retrieve the last ones per thread.
    var messageCursors = [];
    _.each(threadIds, function(threadId) {
      var lastMessage = Messages.find({ threadId: threadId }, {
        sort: { createdAt: -1 }, limit: 1
      });
      messageCursors.push(lastMessage);
    });

    return messageCursors;