Мангуст не сохраняет данные - findOneAndUpdate - PullRequest
0 голосов
/ 21 апреля 2019

Проблема

У меня есть вложенный массив, который я хочу обновить, однако, когда я выполняю findOneAndUpdate, mongoose создает только идентификатор объекта для нового объекта в массиве и не передает данные, которые я пытаюсь сохранить

Весь мой код приведен ниже, и ваша помощь будет очень полезна, чтобы вытащить меня из этого беспорядка!

Код

Мангуст Модели


const instantSchema = mongoose.Schema({
  userId: {type: mongoose.Schema.Types.ObjectId, ref: 'User', require: true},
  name: {type: String, require: true},
  startDate: {type: Date, require: true},
  endDate: {type: Date, require: false},  
  length: {type: Number, require: true},
  inProgress: {type: Boolean, require: true, default: true}, 
  comps: [iCC]
});

const iCC = {
  userId: {type: mongoose.Schema.Types.ObjectId, ref: 'User', require: true},   
  inProgress: {type: Boolean, require: true, default: true},  
  starting: {type: statsFieldsSchema, require: true},
  dates: [{
    statsFields: {type: datesSchema, require: true}
  }],
  rank: {type: Number, require: false},
  finalDates: {type: datesSchema, require: false}  
};

const datesSchema = {
  days: {type: Number, require: true},
  weeks: {type: Number, require: true},
  months: {type: Number, require: true},
  years: {type: Number, require: true}
}

Выполнение кода findOneAndUpdate


  const newDates = {
     days: 2,
     weeks: 3,
     months: 5,
     years: 3
        };

        const newSave = await InstantComp.findOneAndUpdate(
          {
            _id: instantId,
            'comps.userId': user.userId
          }, 
          {$push: {'comps.$.stats': newDates}},
          {new: true}
        );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...