Я создал свою модель и могу сохранить массив объектов, перечислив их вручную, однако это не будет работать в производственном процессе, поскольку мой массив не всегда будет иметь одинаковый размер.
Ниже приведен пример моего кода.Проблема, с которой я сталкиваюсь при сохранении массива объектов в поле stackRank.
Если у кого-нибудь есть какие-либо предложения, которые будут полезны и спасут жизнь!
Модель Mongoose
const MySchema = mongoose.Schema({
userId: {type: mongoose.Schema.Types.ObjectId, ref: 'User', require: true},
startDate: {type: Date, require: true},
endDate: {type: Date, require: false},
length: {type: Number, require: true},
inProgress: {type: Boolean, require: true, default: true},
stackRank:[{
appUsers: {type: mongoose.Schema.Types.ObjectId, ref: 'Users', require: true}
}]
});
Сохранение кода в Express
const mySchema = new MySchema({
userId: req.body.userId,
startDate: today,
length: req.body.startLength,
stackRank: [ //TODO this is the part I need to change
{appUsers: Array[0]},
{appUsers: Array[1]},
{appUsers: Array[2]}
]
});
instantComp.save()
.then((result) => {
console.log('result from save', result)
})
.catch(err => console.log('error promise all', err))
Желаемая функциональность
Вместо сохранения каждого значениямассив отдельно для поля appUsers, вложенного в stackRank, я хочу иметь возможность сохранить весь массив сразу, потому что он не всегда будет иметь длину три.Его длина почти всегда будет разной, поэтому, несмотря на то, что написанный мной код работает для массива такого размера, он на самом деле не будет работать для меня должным образом.
Изображение того, как я хочу получить данныебыть сохраненным в Монго