具有特定值的Mongoose模式属性

这是我的代码:

var userSchema = new mongoose.Schema({ email: String, password: String, role: Something }); 

我的目标是将angular色属性定义为具有特定的值('admin','member','guest'等等),有什么更好的方法来实现呢? 提前致谢!

  • 在我的HTML中使用节点function
  • 如何在MEAN堆栈中使用orientDB
  • mongoose连接扔警告
  • recursion调用node.js中的asynchronous函数
  • 创build一个支持callback和承诺的Mongoose插件
  • 如何在mongoDB中从hh:mm到hh:mm两次过滤数据
  • 使用nodejs中的其他模型数据填充表单中的下拉列表
  • 如何在mongoose中使用更多的$ group
  • 你可以做枚举。

     var userSchema = new mongoose.Schema({ // ... , role: { type: String, enum: ['admin', 'guest'] } } var user = new User({ // ... , role: 'admin' }); 

    我并没有真正知道具有特定的angular色价值的方法,但也许你想创build基于主对象types的多个对象types,每个对象types都有自己的angular色(以及其他任何你想要的区分)。 例如…

     var userSchema = function userSchema() {}; userSchema.prototype = { email: String, password: String, role: undefined } var member = function member() {}; member.prototype = new userSchema(); member.prototype.role = 'member'; var notSupposedToBeUsed = new userSchema(); var billTheMember = new member(); console.log(notSupposedToBeUsed.role); // undefined console.log(billTheMember.role); // member 

    另一种可能性是具有构造函数的userSchema,它很容易让你select一个内置的值。 一个例子…

     var userSchema = function userSchema(role) { this.role = this.role[role]; // Gets the value in userSchema.role based off of the parameter }; userSchema.prototype = { email: String, password: String, role: { admin: 'admin', member: 'member', guest: 'guest' } } var a = new userSchema('admin'); var b = new userSchema('blah'); console.log(a.role); // 'admin' console.log(b.role); // undefined 

    更多: http : //pivotallabs.com/users/pjaros/blog/articles/1368-javascript-constructors-prototypes-and-the-new-keyword