Meteor 如何限制客户端仅查看最新的100条记录?
我有一个名为Meteor 如何限制客户端仅查看最新的100条记录?,meteor,Meteor,我有一个名为server/publications.js的文件,其中包含以下内容: var MAX_RESULTS = 100; Meteor.publish('messages', function () { var count = Messages.find().count(); if (count > MAX_RESULTS) { return Messages.find({}, {sort: {submitted: 1}, skip: count - MAX_RE
server/publications.js
的文件,其中包含以下内容:
var MAX_RESULTS = 100;
Meteor.publish('messages', function () {
var count = Messages.find().count();
if (count > MAX_RESULTS) {
return Messages.find({}, {sort: {submitted: 1}, skip: count - MAX_RESULTS});
} else {
return Messages.find();
}
});
以及名为client/main.js
的文件,其中包含:
Meteor.subscribe('messages');
在我的模板助手中,我只需调用Messages.find()
。这种技术的工作原理是在开始时只给客户提供最新的100个结果。然而,随着每一条新记录的出现,客户机看到的越来越多
如何使客户端只看到最新的100个结果?使用:
嗯,尝试这个,现在当我尝试插入一条消息时,客户端似乎从未收到它。不过,如果我刷新页面,它就会工作。是否有更好的方法获取最后100条消息?您可以删除
跳过
并使用排序:{submitted:-1}
,这可能是个好主意。但是我需要我的消息按这种方式排序,以便页面以正确的顺序呈现它们。有没有办法反转{{{each}}
?编辑:我找到了:)我将在服务器上“向后”排序,限制为100。然后在客户机上,我将只获得100条记录,并以正确的方式对它们进行排序!
Messages.find({}, {sort: {submitted: 1},
skip: count - MAX_RESULTS,
limit: MAX_RESULTS
});