如何在Mongoose数组中同时validation其元素

我有这个模式,我validationarraysbook的元素,但我不知道如何validation数组本身。

  var DictionarySchema = new Schema({ book: [ { 1: { type: String, required: true }, 2: String, 3: String, c: String, p: String, r: String } ] }); 

例如,我想根据需要放置书籍数组。 任何帮助?

您可以使用自定义validation器来执行此操作。 只需检查数组本身是否为空:

 var mongoose = require('mongoose'), Schema = mongoose.Schema; mongoose.connect('mongodb://localhost/test'); var bookSchema = new Schema({ 1: { type: String, required: true }, 2: String, 3: String, c: String, p: String, r: String }); var dictSchema = new Schema({ books: [bookSchema] }); dictSchema.path('books').validate(function(value) { return value.length; },"'books' cannot be an empty array"); var Dictionary = mongoose.model( 'Dictionary', dictSchema ); var dict = new Dictionary({ "books": [] }); dict.save(function(err,doc) { if (err) throw err; console.log(doc); }); 

当数组中没有内容时,将抛出一个错误,否则将validation为数组中的字段提供的规则。