Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor 如何限制客户端仅查看最新的100条记录?_Meteor - Fatal编程技术网

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
});