我可能在文档中遗漏了一些非常明显的东西或遗漏了一些东西。我搜索并没有找到类似的问题。发布它。
这两个
return Items.find({},{sort: {time: -1}, limit: 10});
或者
return Items.find({},{sort: {time: -1}).limit(10);
导致meteor cannot observe queries with skip or limit
我可能在文档中遗漏了一些非常明显的东西或遗漏了一些东西。我搜索并没有找到类似的问题。发布它。
这两个
return Items.find({},{sort: {time: -1}, limit: 10});
或者
return Items.find({},{sort: {time: -1}).limit(10);
导致meteor cannot observe queries with skip or limit
更新:这是一个更长的问题。从 Meteor 0.5.3 开始,您可以使用skip
和limit
选项观察查询。
不幸的是,这是真的:mimimongo 包目前不支持调用observe
使用skip
orlimit
选项的游标。这没有充分的理由;它只是没有实施。
如果您在模板助手中调用此查询,有一个简单的解决方法:
Template.name.items = function () {
// fetch array of all the items
var items = Items.find({}, {sort: {time: -1}}).fetch();
// return only the first 10 items to the template
return items.slice(0,10);
};
变通办法的缺点是效率。如果您的助手返回一个游标(只返回值Items.find
而不调用fetch
,则模板系统足够智能,不会在仅一项更改或插入新项时重新计算整个模板。
另一方面,调用帮助程序会注册对整个fetch
查询结果的依赖,因此只要查询中的任何对象发生更改,就会重新计算整个模板。
没有其他区别。模板会将相同的东西放在屏幕上,并且在必须重绘自身时保留表单元素的内容。