我正在使用autosubscribe来获取最新的50个最新聊天文档的列表。随着更多的消息发布,较旧的消息将通过自动订阅从minimongo中删除。如何让自动订阅不删除我标记为活动的某些邮件?
我知道我可以手动单独订阅一个“活动”消息列表,但这似乎不必要地费力。谢谢。
编辑:活动标记只是客户端的,每个用户都可以选择他关心的消息,这是短暂的事情。用户将消息标记为他正在回复的消息,所以它不应该突然被删除。
发布于 2013-02-09 03:34:27
您需要按时间(_id捕获它被插入的顺序,因此按时间)和状态进行排序,两者都是按降序排列的。
服务器代码:
Meteor.publish("messages", function () {
return Messages.find({}, {sort: {active: -1, _id:-1}, limit: 50});
});发布于 2013-02-09 02:43:19
在发布功能中,按状态排序。
Meteor.publish("messages", function () {
return Messages.find({}, {sort: {status: 1}, limit: 50});
});发布于 2013-02-16 06:45:09
除非您的实现仅限于能够将线路标记为活动的单个用户,否则对聊天行文档的标记需要使用活动用户id。
不幸的是,这导致了单独订阅的需要,即使这看起来“不必要地费力”。
另一种“费力的方式”是制作所选活动消息的本地仅客户端集合副本。
https://stackoverflow.com/questions/14774330
复制相似问题