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