【发布时间】: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