Проблема
У меня есть вложенный массив, который я хочу обновить, однако, когда я выполняю 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}
);