2016-04-26 7 views
2

を必要とします。しかし、タグ配列を持たない新しいプロジェクトを保存すると、mongooseはエラーをスローしません。マングースは、Arrayは、私は次のようになりますマングースモデルを持っている

var project = new Project({'name': 'Some name'}); 
project.save(function(err, result) { 
    // No error here... 
}); 

私はここで何が欠けていますか?アレイを指定するにはどのようにすればよいですか?

答えて

6

ワンライナーは次のようになります。

tags: {type: [String], required: true}

SchemaTypes

+0

ニース、ちょうどそれを試してみました。そんなことは分かりませんでした。ありがとう。 – benjiman

+1

@benjimanは、Mongooseが 'String'にキャストすることができる限り、' tags'の非文字列エントリ(これは私の答えでコードで捕まえられる)をうれしく受け入れることに注意してください。 – robertklep

2

私の知る限り、あなたはtypeArrayに設定し、各エントリはStringであることを確認するために、カスタムバリデータを追加する必要があります。

tags : { 
    type  : Array, 
    required : true, 
    validate : { 
    validator : function(array) { 
     return array.every((v) => typeof v === 'string'); 
    } 
    } 
} 
+0

完全に動作します。ありがとう:-) – benjiman

関連する問題