Ошибка ValidatorError: не удается прочитать свойство ‘options’ неопределенного в неопределенном поле

#mongodb #express

#mongodb #выразить

Вопрос:

У меня есть Shape и ShapeOrientation модели. Фигура может иметь много ориентаций формы. Итак, мои модели следующие:

 var shapeSchema = new mongoose.Schema({
  name: { type: String },
  mfrID: { type: String },
  category: { type: mongoose.Schema.Types.ObjectId, ref: 'ShapeCategory' },
  brand: { type: mongoose.Schema.Types.ObjectId, ref: 'ShapeBrand' },
  available: { type: Boolean, default: false },
  related: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Shape' }],
  orientations: [{ type: mongoose.Schema.Types.ObjectId, ref: 'ShapeOrientation' }],
  owner: { type: mongoose.Schema.Types.ObjectId, ref: 'User' },
  open: { type: Boolean, default: true },
  thumb: { type: String },
  thumbMime: { type: String },
  thumbPath: { type: String },
  shapeid: { type: String },
  desc: { type: String },
  verified: { type: Boolean, default: true }
  

Таким образом, моя схема ориентации формы:

 var shapeOrientationSchema = new mongoose.Schema({
  name: { type: String },
  data: { type: String },
  shape: { type: mongoose.Schema.Types.ObjectId, ref: 'Shape' },
  shapeid: { type: String },
  length: { type: Number },
  width: { type: Number },
  depth: { type: Number },
  thumb: { type: String },
  thumbMime: { type:String }
});
  

Когда я пытаюсь одновременно заполнить свои ориентации формы и форму для массового импорта.

 ShapeOrientation.insertMany(orientations)
  .then(function(manyDocs){
    console.log('hooked up and saved orientations.');
    async.eachSeries(manyDocs, function(orientDoc, orientDone) {
      Shape.findOne({shapeid: orientDoc.shapeid})
      .then(function(foundShape){
        foundShape.orientations.push(orientDoc._id);
        foundShape.save(function(err) {
          if(err) {
            console.log('shape', foundShape)
            console.log('cannot save shape', err)
            orientDone();
            return;
          } else {
            orientDone();
          }
          console.log('saved shape')
        })
      })
    })
  

Я получаю следующую ошибку в undefined поле mongo.

 cannot save shape { [ValidationError: Shape validation failed]
  message: 'Shape validation failed',
  name: 'ValidationError',
  errors:
   { undefined:
      { [ValidatorError: Cannot read property 'options' of undefined]
        properties: [Object],
        message: 'Cannot read property 'options' of undefined',
        name: 'ValidatorError',
        kind: 'cast',
        path: undefined,
        value: undefined } } }
  

Кажется, у меня нет обязательных полей, и я просто пытаюсь сохранить связанные данные, пока заполняю ориентацию.

Существуют как _.id форма, так и ориентация, поэтому я не понимаю, почему это не сохранится.