为什么这不起作用?:
在客户端和服务器上:
AllUsers = new Meteor.Collection('allUsers');
仅在服务器上:
Meteor.publish('allUsers', function() {
return Meteor.users.find();
});
仅在客户端:
Deps.autorun(function(){
Meteor.subscribe("allUsers");
});
启动此应用程序后,AllUsers.find().count()为零,但在终端中执行db.users.find.count()会给出正确的数字(3).即使我在浏览器中添加了一个新用户(使用标准的ui-accounts包形式),这肯定会导致用户集合发生变化,但我的AllUsers集合中仍然没有文档.我正在试图解决这个问题!
Dav*_*don 22
服务器上定义的Meteor集合与数据库中的集合具有1:1的关系.您在调用的数据库中没有集合'allusers',因此该定义没有意义.您似乎对数据库集合和已发布结果集的概念感到困惑.
当您将帐户包添加到项目中时,meteor Meteor.users会在客户端和服务器上为您定义集合,因此您无需再次执行此操作.您的代码看起来很好 - 只需删除new Meteor.Collection并通过访问用户Meteor.users.find.
Meteor.users由accounts包创建db.users.你可以通过做类似的事情使这个集合看起来像你定义的其他集合Users = Meteor.users,然后调用Users.find()而不是Meteor.users.find().new Meteor.Collection('rooms')'rooms'是数据库(db.rooms)中集合的名称.文档可以从服务器发布到客户端.new Meteor.Collection('userCount')'userCount'与数据库集合的名称不对应,而只是客户端和服务器商定的标识符.new Meteor.Collection(null)| 归档时间: | 
 | 
| 查看次数: | 7192 次 | 
| 最近记录: |