Javascript meteor无法观察带跳过或限制的查询

Javascript meteor无法观察带跳过或限制的查询,javascript,mongodb,meteor,Javascript,Mongodb,Meteor,我可能遗漏了一些非常明显的东西,或者文档中遗漏了一些东西。我搜索了一下,没有发现类似的问题。张贴它 这两个 return Items.find({},{sort: {time: -1}, limit: 10}); 或 结果导致meteor无法观察到带有跳过或限制的查询更新:这不再是一个问题。从Meteor 0.5.3开始,您可以使用skip和limit选项观察查询。 不幸的是,这是事实:mimimongo包目前不支持对使用跳过或限制选项的游标调用观察。这没有什么好的理由;它只是没有实现 如果在

我可能遗漏了一些非常明显的东西,或者文档中遗漏了一些东西。我搜索了一下,没有发现类似的问题。张贴它

这两个

return Items.find({},{sort: {time: -1}, limit: 10});


结果导致meteor无法观察到带有跳过或限制的查询更新:这不再是一个问题。从Meteor 0.5.3开始,您可以使用
skip
limit
选项观察查询。

不幸的是,这是事实:mimimongo包目前不支持对使用
跳过
限制
选项的游标调用
观察
。这没有什么好的理由;它只是没有实现

如果在模板帮助器中调用此查询,有一个简单的解决方法:

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);
};
这种变通方法的缺点是效率。如果助手返回光标(仅返回
项的值。查找
而不调用
获取
),则模板系统足够智能,不会在仅更改一个项或插入新项时重新计算整个模板

另一方面,在helper中调用
fetch
,会注册对整个查询结果的依赖关系,因此在查询中的任何对象发生更改时,都会重新计算整个模板


<> P>没有其他区别。模板将在屏幕上放置相同的东西,当它必须重新绘制自己时,它将保存表单元素的内容。

谢谢,这是有效的。路线图考虑另一个MunGDB包来避免MangoDB文档之间的混淆。我们希望Mimulango实现完整的Mong。oDB API.Patches welcome.有一个缺少项的列表。关于的文档显示了限制,可能需要更新?
Template.players.top_10_scorers=function(){return Users.find({},{sort:{score:-1},limit:10});}
我希望我能帮上忙,但我是一个新手,只是在学习这方面的知识。何时可以实施跳过和限制?这些对于实现有效的分页似乎至关重要。否则,所有跳过/限制操作都必须在服务器上执行,并且本地缓存必须实时更新,以反映应该显示的内容在客户端上播放(不再播放),而不是预取和缓存结果。这在devel分支上已修复,并将在Meteor的下一版本中发布。问题已注册。请查看此
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);
};