Mongoose:在一个集合

时间:2016-07-28 21:11:46

标签: javascript node.js mongodb mongoose database-schema

我正在使用nodejs并且有一个注册页面,其中有一个select标签可供客户和员工之间选择。

我想要1个模型和2个模式: -User:将包含公共道具,例如:mail,name,pass ... -EmployeeSchemma,包含员工的特定文件 -ClientSchemma,包含客户的特定字段。

这是我想在服务器端实现的目标:

var User=require("models/user");

router.post("/register",function(req,res){
var newUser=new User();

if(req.body.type=="client")
   //  make the newUser use the ClientSchema //

if(req.body.type=="employee")
  //   the newUser instance will use the EmployeeSchema //
});

请问我怎样才能取得这样的成绩(?) 请注意,我只想使用一个模型,可以根据表单中的用户选择对Client和Employee用户进行建模。

1 个答案:

答案 0 :(得分:0)

如果你想要一个"动态模型"我想你正在寻找setting strict to false in mongoose

正如您所知,默认情况下,Mongoose将遵循您设置的架构/模型,设置strict:false将允许您保存不在架构/模型中的字段。

因此,对于您的情况,在您的文件模型/用户中,您将要包含" strict:false"作为创建架构时的第二个参数:

var userSchema = new Schema({
    email: String,
    name: String,
    password: String
    // other parts of your user schema
}, {strict: false})

您现在应该可以在同一个集合中相应地设置客户和员工字段。