MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

So validieren Sie in Mongoose ein Array und gleichzeitig seine Elemente

Sie können einen benutzerdefinierten Validator verwenden um dies zu tun. Prüfen Sie einfach, ob das Array selbst nicht leer ist:

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);

});

Was einen Fehler auslöst, wenn das Array keinen Inhalt enthält, und andernfalls die Validierung für die Regeln weitergibt, die für die Felder im Array bereitgestellt werden.