我修改了排行榜示例以使用两个集合:
Players = new Meteor.Collection("players");
Tasks = new Meteor.Collection("tasks");
Players集合包含示例中定义的6个文档。
> db.players.count()
6
Tasks集合有48,000个文档。
> db.tasks.count()
48000
一旦打开浏览器,Node就会跳转到100%CPU,客户端无法看到任何任务记录。
Players.find().count()
6
Tasks.find().count()
0
我尝试定义查询条件,但这只适用于服务器,对客户端没有帮助。
Players.find({name:"Claude Shannon"}).count();
1
Tasks.find({tid:"t36254"}).count();
0
我猜测48,000个文档太多无法同步。这导致Node挂起100%CPU,客户端抛出这样的错误:http://i.imgur.com/zPcHO.png。
如何阻止同步所有内容并仅从集合中检索特定文档?
答案 0 :(得分:18)
Meteor的自动发布,将你的所有馆藏发布到客户端,令人印象深刻,让事情变得更快,但它有点像Rails脚手架功能 - 对于真正的应用程序不是很有用 - 它用于学习和原型设计。 / p>
默认情况下,Meteor会自动将集合中的每个文档发布到每个连接的客户端。要关闭此行为,请删除包:
$ meteor remove autopublish
然后,学习使用手动发布和订阅功能,它为您提供所需的控制:http://docs.meteor.com/#publishandsubscribe