私はこのようなnodejsにmongooseのユーザースキーマがあります
userschema = mongoose.Schema({
org: String,
username: String,
fullname: String,
password: String,
email: String
});
時々除いて、いくつかのフィールドを追加する必要があります。
主な質問は次のとおりです:monogooseスキーマにオプションのフィールドを含めることはできますか?
Mongooseスキーマのすべてのフィールドは、デフォルトではオプションです(もちろん_id
以外)。
フィールドは、定義に required: true
を追加する場合にのみ必要です。
したがって、スキーマをすべての可能なフィールドのスーパーセットとして定義し、必要なフィールドにrequired: true
を追加します。
オプション(デフォルト)および必須に加えて、他の1つ以上のフィールドに基づいて、フィールドを条件付きで必須にすることもできます。
たとえば、電子メールが存在する場合にのみパスワードを要求します。
var userschema = mongoose.Schema({
org: String,
username: String,
fullname: String,
password: {
type: String,
required: function(){
return this.email? true : false
}
},
email: String
});