Ste*_*non 9 javascript mongodb meteor
我可能在文档中遗漏了一些非常明显或遗漏的东西.我搜索过,没有找到类似的问题.张贴它.
这两个
return Items.find({},{sort: {time: -1}, limit: 10});
Run Code Online (Sandbox Code Playgroud)
要么
return Items.find({},{sort: {time: -1}).limit(10);
Run Code Online (Sandbox Code Playgroud)
造成 meteor cannot observe queries with skip or limit
deb*_*lis 16
更新:这是一个问题.从Meteor 0.5.3开始,您可以观察查询skip和limit选项.
不幸的是,这是真的:mimimongo包目前不支持调用observe使用skip或limit选项的游标.这没有充分的理由; 它只是没有实现.
如果您在模板助手中调用此查询,则有一个简单的解决方法:
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);
};
Run Code Online (Sandbox Code Playgroud)
解决方法的缺点是效率.如果你的助手返回一个游标(只是返回Items.find没有调用的值fetch,那么模板系统足够智能,当只有一个项目改变时,或者如果插入了一个新项目,就不会重新计算整个模板.
另一方面,调用fetch帮助程序会记录对整个查询结果的依赖性,因此每当查询中的任何对象发生更改时,都会重新计算整个模板.
没有其他区别.模板将在屏幕上放置相同的内容,它将在必须重绘自身时保留表单元素的内容.