Meteor 1.3:如何创建一个仅包含客户端db集合中某些字段的客户端集合?

时间:2016-04-17 07:57:03

标签: meteor

我想将所有用户发布到客户端(最终只会是所有用户的'profile'字段):

服务器上的出版物如下所示:

Meteor.publish('users', function users() {
    return Meteor.users.find();
});

在我的模板中,我的订阅看起来像这样:

Template.Users_show_page.onCreated(function usersShowPageCreated() {
    this.subscribe('users');
});

但是'users'变量不可用,我仍然需要通过Meteor.users访问用户,例如在以下代码中:

Template.Users_show_page.helpers({
    users() {
        return Meteor.users.find();
    }
});

为什么会这样?

我认为我需要使用我选择的名称创建一个客户端集合 - 即“用户”,然后我可以访问该集合。

我该怎么做?如何与数据库中的用户进行同步?

1 个答案:

答案 0 :(得分:1)

$ git commit -a
fatal: Unable to create 'D:/Projects/gitProjects/color-palette/.git/index.lock': File exists.

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git process is running and remove the file manually to continue.

上面的代码无法在任何地方创建MyCollection = new Meteor.Collection('foo'); Meteor.publish('myPublication', function() { return MyCollection.find(); }); 变量。它只是出版物/订阅的名称。您甚至可以在同一个集合中拥有多个不同的订阅。此代码返回myPublication Mongo集合的游标,您可以通过MyCollection对象访问该集合。

因此,您的代码不需要创建新的foo。只需使用Mongo.Collection,因为Meteor.users对象已经链接到"用户"在MongoDB中。

如果您真的想要访问用户变量中的文档,您仍然需要按照建议创建帮助程序,尽管使用Meteor.users而不是下面的帮助程序会更好:

Mongo.Collection