流星:不同的集合,不同的数据库

时间:2013-04-01 07:14:52

标签: meteor

我的网站将有两种类型的用户:客户和管理员。他们都需要账户。对于帐户,内置的meteor帐户系统使用users集合。有没有办法将这两类用户分成单独的集合(比如customersadmins),而不是将它们全部放在一个集合中?我可能还希望将这些类型的用户放在不同的数据库中(在不同的服务器上):customers的一个数据库和admins的另一个数据库。那么,如何告诉Meteor哪个数据库用于哪个集合?

这是一种电子商务类型的网站。谁能告诉我为什么一个单一的集合会更好地用于客户和管理员?在创建网上商店时使用一个集合而不是两个集合的优缺点是什么?

2 个答案:

答案 0 :(得分:0)

您可能想尝试角色Roles包。 https://github.com/alanning/meteor-roles

您不需要分隔集合,只需为不同的用户分配不同的角色。

答案 1 :(得分:0)

为什么不将meteor分成2个实例,一个用于客户端,另一个用于管理界面。就个人而言,我会使用角色,但如果这是你的偏好,那就没错了:

您的管理员meteor客户端js代码

OtherMeteor = Meteor.connect("http://other_meteor_url")

//get user with username "admin"/connect to a custom method
OtherMeteor.call("getuser",{username:admin}, function(err,result) {
    console.log("result")
})

或者您可以直接附加到另一个流星实例上的集合

remote_meteor = Meteor.connect("http://other_meteor_url");
users2 = new Meteor.Collection("users", {manager: remote_meteor})

//wait for the subscription to finish first then use:
console.log(users2.find().fetch())
users2.up

执行自定义功能的另一个流星中的代码:

服务器js:

Meteor.methods({
    'getuser':function(query) {
        return Meteor.users.find(query).fetch();
    },
    'updateuser':function(query,modifier) {
        return Meteor.users.update(query,modifier);
    }
})