Я хочу сохранить мой массив объекта car
в моем поле user.cars в mongoose.
Моя схема пользователя выглядит следующим образом:
const UserSchema = new Schema({
firstName: {
type: String,
required: true
},
lastName: {
type: String,
required: true
},
cars: [{
type: Array,
required: false
}]
})
Я сохраняю пользователяавтомобили на конечных точках машин выглядят так:
router.route('/cars')
.post(async function (req, res) {
User.findById(req.user._id)
.then((user, err) => {
if (err) {
return res.json({err})
}
if (user && user._id) {
user.cars = req.body.cars
user.save(function (err) {
if (err) {
res.status(500)
return res.json({
success: false,
message: err.message || 'Update failed'
})
}
ioServer.sockets.emit('update-users')
res.status(200).json({
success: true,
message: 'User updated successfully'
})
})
} else {
return res.json({message: 'No user', success: false})
}
})
.catch(err => console.log(err))
})
Мой журнал запросов req.body выглядит следующим образом:
{ cars: [
{
type: 'Sedan',
make: 'BMW',
model: '525i',
[...]
},
{
type: 'Coupe',
make: 'Subaru',
model: 'BRZ',
[...]
},
{
type: 'SUV',
make: 'Toyota',
model: 'Rav4',
[...]
}
]
}
Этот код работает, но mongoose сохраняет данные в виде нового массива, поэтому выглядитthis:
{ user.cars: [
[
{car},
{car},
...
]
]}
Но я хочу получить user.cars в виде массива объектов вместо передачи нового массива в автомобили.
Большое спасибо за помощь в поиске, где я допустил ошибку вмой код.