Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用MongoDB模式组织级别用户_Mongodb_Mongoose_Schema - Fatal编程技术网

使用MongoDB模式组织级别用户

使用MongoDB模式组织级别用户,mongodb,mongoose,schema,Mongodb,Mongoose,Schema,我正在为一个数据库建模以保存农业数据。我的应用程序中有一些用户类型,如合作伙伴、公司、合作社和农民。合作伙伴具有特定的访问控制,而其他访问控制仅用于查看您的数据 我的问题是:如何使用mongoose模式实现这些模型?有趣的是,在唯一的模式中插入所有用户类型 抱歉,但我考虑的是一个表格模型,每个用户类型有一个单独的表格 谢谢 我认为您正在寻找的是定义模式的最佳方法 var ROLES = ["farmer", "partner"] var UserSchema = new mongoose.Sc

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

我的问题是:如何使用mongoose模式实现这些模型?有趣的是,在唯一的模式中插入所有用户类型

抱歉,但我考虑的是一个表格模型,每个用户类型有一个单独的表格

谢谢


我认为您正在寻找的是定义模式的最佳方法

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

var UserSchema = new mongoose.Schema({
    name: String,
    location: String,
    role: {
        type: String,
        enum: ROLES
    }
});
这将为用户提供一个角色,但在创建和保存用户时验证该角色只能是这两个角色之一。不管你怎么做,基于角色的逻辑仍然取决于你。这只允许您使模式的其余字段保持相同。如果每个角色都有不同的键,那么不同的集合更实用。如果它们都使用名称和位置以及您拥有的任何其他键,那么将它们保留在相同的集合中就更有意义了