使用MongoDB架构组织级别用户

时间:2015-11-10 14:05:58

标签: mongodb mongoose schema

我正在建模数据库以保存农业数据。我的应用程序中有一些用户类型,如合作伙伴(公司和合作社)和农民。合作伙伴具有特定的访问控制权,而农民的其他访问控制权仅用于查看您的数据。

我的问题是:如何使用mongoose架构来完成这些模型?有趣的是在一个独特的模式中插入所有用户类型?

很抱歉,我在一个表格模型中思考,每个用户类型都有一个单独的表格。

由于

Model

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找的是定义架构的enum option

var ROLES = ["farmer", "partner"]

var UserSchema = new mongoose.Schema({
    name: String,
    location: String,
    role: {
        type: String,
        enum: ROLES
    }
});

这将为用户提供角色,但验证在创建和保存用户时它只能是这两个角色中的一个。无论如何,基于角色的逻辑仍由您决定。这只允许您使模式的其余字段相同。如果每个角色具有不同的键,则不同的集合更实用。如果他们都使用namelocation以及您拥有的其他任何密钥,那么将它们保持为相同的集合会更有意义。