0
mongooseオブジェクト用のカスタムベイルダーターを作成しようとしています。考えられるのは、name
フィールドは、異なるコレクション内の既存のオブジェクトの名前値でなければならないということです。私はそうのようにこれをやっている:mongoose:データベースに既に入っているフィールドを検索するスキーマの一部を無効にしました
var seshSchema = new Schema(
{
student:
{
type: String,
validate: [
function(input)
{
studentColl.find({name: input},function(err, result){
if(err)
{
throw err;
}
return result.length > 0; //how do I make this get returned by the function in vaildate's array?
});
}, "nope"]
},
tutor: {type: String},
blockTimes: [blockTime],
record : [pastSession]
}
);
は私がやろうとしていることは別のコレクション(studentColl)で一定の基準が存在するか否かに基づいて、この作品を検証しています。これは可能ですか?そこMongoose Validation
彼らは非同期バリhereの使用法を説明します。
@Schulace:
では、このマニュアルによると、あなたのコードは次のように探している必要があり、この答えはあなたを助けていますか? – mrunde
私はこれをやってみましたが、最初の関数ではなく、findに渡された関数に戻ります。基本的には、この非同期メソッドを同期して実行する必要があります。 – Schulace
私は現在、非同期バリデータを使用しているanwerを更新しました。多分、これはあなたが探しているものですか? – mrunde