Я хочу использовать метод $ push для помещения объекта во вложенный массив. Но я не могу заставить его работать, так что вы можете динамически получить нужный объект внутри массива. Позвольте мне объяснить лучше, показывая код.
Это моя схема:
var StartedRaceSchema = new mongoose.Schema({
waypoints: {
type: Object,
name: String,
check_ins: {
type: Object,
user: {
type: Object,
ref: 'User'
}
}
}
});
Когда вы регистрируетесь на путевой точке, она должна быть вставлена в правильные путевые точки, вложенные Check_ins
Это код для обновления:
StartedRace.findByIdAndUpdate(req.params.id,
{ $push: { 'waypoints.1.check_ins': req.body.user } },
function (error) {
if (error) {
console.log(error)
res.send({
success: false,
error: error
})
} else {
res.send({
success: true
})
}
}
)
Как видите, я могу заставить его работать только с такими полями, как:
'waypoints.1.check_ins'
Это 1 должно быть динамически, потому что оно отправляется в пределах параметров.
Но я не могу заставить его работать динамически, только жестко закодировано.
Кто-нибудь знает, как это сделать?