Mongoose:在一个集合下动态加载不同的模式
Mongoose : Dynamically load different schema under one collection
我使用的是nodejs,并且有一个注册页面,该页面有一个select标记,可以在Client和Employee之间进行选择。
我想要一个模型和两个模式:-用户:将包含公共道具,例如:邮件,姓名,通行证。。。-EmployeeSchemma,具有员工的特定文件-ClientSchemma,其中包含客户端的特定字段。
这就是In想要在我的服务器端实现的:
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 //
});
请问我怎样才能达到这样的结果(?)注意,我只想使用一个模型,它可以根据表单中的用户选择对客户和员工用户进行建模。
如果你想要一个"动态模型",我想你正在寻找猫鼬中严格为false的设置
正如您所知,默认情况下,Mongoose将遵循您设置的模式/模型,设置strict:false将允许您保存不在模式/模型中的字段。
因此,对于您的情况,在您的文件模型/用户中,您将希望在创建模式时包含"strict:false"作为第二个参数:
var userSchema = new Schema({
email: String,
name: String,
password: String
// other parts of your user schema
}, {strict: false})
现在,您应该能够在同一集合中相应地设置客户和员工字段。
相关文章:
- UIWebview赢得't通过基本身份验证加载动态加载的资源(通过jQuery mobile)
- 我们可以加载动态角度对话框吗
- 使用JQuery在遗留html中加载动态AngularJS
- 谷歌地图在angularjs中懒惰加载动态地理坐标更新
- 正在加载动态日历以在一个月的正确日期开始
- 从服务器和/或客户端加载动态元素的典型技术是什么
- 如何加载动态更改的css文件
- jQuery 时间选取器未加载动态文本字段
- 如何在Highslide中加载动态生成的iframe
- 有没有办法避免角加载动态构建页面时的抖动效应
- 加载动态添加的输入字段
- 用于加载动态 JSON 数据的 JQuery 移动事件
- 手控表未加载动态创建的列标题
- 如何在 ag-grid 中从 http 调用加载动态列和行(列和记录都应该是动态的)
- Jquery 在 Firefox 中的自定义对象参数(动态导航加载动态内容)
- 延迟加载动态驱动器内容选项卡
- Angular JS ui-router - 加载动态视图和动态控制器
- 防止在引导选项卡中加载动态连续网络两次
- 使用 nodejs 加载动态 html
- 如何在 XSLT 中加载动态内容时创建函数