Bạn có thể sử dụng trình xác thực tùy chỉnh để làm điều này. Chỉ cần kiểm tra xem bản thân mảng có trống không:
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);
});
Điều này sẽ gây ra lỗi khi không có nội dung trong mảng và nếu không thì sẽ loại bỏ xác thực cho các quy tắc được cung cấp cho các trường trong mảng.