Meteor 使用params订阅集合时返回未定义

Meteor 使用params订阅集合时返回未定义,meteor,minimongo,Meteor,Minimongo,我试图sub到一个名为items的集合,但每次我尝试sub到一个limit或skip时,它都会返回整个集合,因为它认为参数未定义。例如,我尝试渲染集合中的1项: Meteor.subscribe("items", 1, 0);// 1 item, 0 skip Tracker.autorun(() => { console.log(items.find({}).fetch()); }) 当我这样做时,整个收藏都会打印出来。在服务器中,当我打印出版物的参数时: Meteor.publi

我试图sub到一个名为
items
的集合,但每次我尝试sub到一个limit或skip时,它都会返回整个集合,因为它认为参数未定义。例如,我尝试渲染集合中的1项:

Meteor.subscribe("items", 1, 0);// 1 item, 0 skip
Tracker.autorun(() => {
  console.log(items.find({}).fetch());
})
当我这样做时,整个收藏都会打印出来。在服务器中,当我打印出版物的参数时:

Meteor.publish("items", (l, s) => {
  console.log(l, s);
  // returns: undefined undefined
  //          1 0   
  return items.find({}, {limit: l, skip: s});
})

在客户端,我得到所有呈现的文档,而不仅仅是一个。这里是否有我遗漏的或做错的地方?

很可能您仍然安装了
autopublish
软件包,它会自动发布和订阅您的整个收藏

因此,看起来您已经到了应该删除该包的步骤(
meteor remove autopublish

此外,在您的客户机上,请确保还对集合上的查询进行了筛选,否则您可能会被将数据填充到同一集合中的并行订阅所污染,例如使用
autopublish

另见:


然后,您将拥有另一个订阅,该订阅将接收同一收藏中的文档。