2016-08-19 21 views
0

私はプラグインを構築しており、サブ文書コレクションフィールドのいずれかの属性を指定する必要があります。誰かがstaticsこれを行う公式な方法だと述べた。mongooseサブ文書のスキーマ属性を指定する方法は?

ので、代わりに

var familySchema = mongoose.Schema({ 
    surName : { type: String }, 
    members : { type: [ personSchema ], minLength: 1, maxLength: 10 } 
}); 

...の...それは...私はminLengthまたはmaxLengthありません実現

var familySchema = mongoose.Schema({ 
    surName : { type: String }, 
    members : [ personSchema ] 
}); 
familySchema.static('minLength', 1); 
familySchema.static('maxLength', 10); 

これをだろう。プラグインがこれを処理します。

私はドキュメントを見てきましたが、公式という言い方を見つけることができません。 1対の利点がありますか?

答えて

0

あなたはそうです、ref配列のminLengthのようなものはありません。あなたは、カスタム検証

var validateFamilyLength = function (members) { 
    return members.length > 1 && members.length < 10; 
}; 

var familySchema = mongoose.Schema({ 
    surName : { type: String }, 
    members : { 
     type: [personSchema], 
     validate: [validateFamilyLength, 'Not valid members count'] 
    } 
}); 

を使用する必要があります。しかし、私は強く、混乱のための代わりに

var familySchema = mongoose.Schema({ 
    surName : { type: String }, 
    members : [{ 
     type: mongoose.Schema.ObjectId, 
     ref: 'Person', 
     validate: [validateFamilyLength, 'Not valid members count'] 
    }] 
}); 
+0

申し訳ありませんが、参考文献を使用することをお勧めします。私は明確にするために質問を改めました。私はそれらの属性を宣言する_preferred_方法を決定しようとしています。 –

関連する問題