6

我修改了排行榜示例以使用两个集合:

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

如何防止同步所有内容并仅从集合中检索特定文档?

4

1 回答 1

18

Meteor 的自动发布功能可以将你所有的收藏发布到客户端,它非常令人印象深刻,并且可以让事情快速运行,但它有点像 Rails 脚手架功能——对于真正的应用程序不是很有用——它用于学习和原型设计。

默认情况下,Meteor 会自动将集合中的每个文档发布到每个连接的客户端。要关闭此行为,请删除软件包:

$ 流星删除自动发布

然后,学习使用手动发布和订阅功能,它为您提供所需的控制:http: //docs.meteor.com/#publishandsubscribe

于 2012-04-27T11:19:31.737 回答