【问题标题】:sorting each session uniquely in Meteor?在 Meteor 中对每个会话进行唯一排序?
【发布时间】:2016-03-27 00:41:36
【问题描述】:

我有发布设置以及会话以将消息发送到正确的房间。

我目前遇到了关于如何限制返回消息的问题,所以如果一个房间有 200 条消息,并且发布了另一条消息,那么最旧的一条将被删除。

//how messages are created
    Meteor.methods({
      newMessage: function (message) {
          message.user = Meteor.userId();
          Messages.insert(message);
      }
    }); 

//how messages are published
    Meteor.publish('messages', function (channel) {
        return Messages.find({channel: channel});
    });

//how chatrooms are published
    Meteor.publish('channels', function () {
        return Channels.find();
    });

问题是,通常我会通过将其放在出版物中来做到这一点{sort:{limit:15}}
但是,这在这种情况下不起作用,会导致所有消息都受到限制。
它们需要按房间排序,或者,嗯,每个会话:键。

有没有简单的方法来解决这个问题?还是我必须在服务器端创建一个方法来运行 .forEach 频道?

【问题讨论】:

    标签: javascript sorting session meteor key-value


    【解决方案1】:

    在单个光标中发布每个房间的前 15 条帖子没有合适的方法。如果房间的数量很少,那么发布一个游标数组可能是有意义的,数组中的每个游标对应一个房间。

    【讨论】:

      【解决方案2】:
      Meteor.publish('messages', function (channel) {
          return Messages.find({channel: channel}, {limit: 15});
      });
      

      我不知道我是怎么错过的,但显然我可以这样做。

      嗯。

      (channel:channel 对应当前设置的会话名称)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多