Har*_*rCo 25 schema mongoose mongodb node.js
我在这样的nodejs中有一个带有mongoose的用户模式
userschema = mongoose.Schema({
org: String,
username: String,
fullname: String,
password: String,
email: String
});
Run Code Online (Sandbox Code Playgroud)
除了有时我需要添加更多字段.
主要问题是:我可以在monogoose模式中使用可选字段吗?
Tal*_*wan 40
除了可选(默认)和必需之外,还可以基于一个或多个其他字段有条件地要求字段.
例如,仅在电子邮件存在时才需要密码:
var userschema = mongoose.Schema({
org: String,
username: String,
fullname: String,
password: {
type: String,
required: function(){
return this.email? true : false
}
},
email: String
});
Run Code Online (Sandbox Code Playgroud)
Joh*_*yHK 37
默认情况下_id,mongoose模式中的所有字段都是可选的(当然除此之外).
只有添加required: true到其定义时才需要字段.
因此,将架构定义为所有可能字段的超集,添加required: true到所需的字段.