Estoy usando la pila MERN para mi programa con mangosta para acceder a la base de datos. Tengo una colección llamada Películas y quería editar varios objetos en una matriz dentro de esta colección. Esto es lo que contiene el esquema de la película en mi base de datos:
Quería editar varios objetos en la matriz 2D dentro de los asientos y cambiar isReserved a True .
Acabo de usar findOne para acceder a los datos ya que todavía no sé cómo actualizar los objetos a los que quiero acceder.
app.post('/confirm/:movieId/:timeId', (req, res) => { const movieId = req.params.movieId; const timeId = req.params.timeId; const selectedSeats = req.body; // console.log("in confirm DB "); // console.log(selectedSeats); let getSeats; let getTimeSlots; const length_timeId = timeId.length; Movies.findOne({ movieId }, (err, movie) => { console.log("INSIDE"); getTimeSlots = movie['timeslots']; let index = timeId.substring(1, length_timeId); //get the seats getSeats = getTimeSlots[parseInt(index)-1]; //loop through seats console.log("PRINTING GET SEATS"); console.log(getSeats); for(var i=0; i<selectedSeats.length; i++) { let row = parseInt(selectedSeats[i] / 5); let id = selectedSeats[i] % 5; console.log(getSeats["seats"][row][id]); } }) }) Ya accedí a los objetos que quiero editar ya que ese código muestra esto en mi terminal: 
Realmente agradecería algunos consejos sobre cómo actualizar el estado de isReserved. ¡Gracias!
¿Especifica el intervalo de tiempo y el asiento por una id o por el índice dentro de la matriz? Si usa el índice, la solución es bastante simple
const key = "timeslots." + req.params.timeId + ".seats." + req.body + ".isReserved"; var upd = {}; upd[key] = true; db.Movies.updateOne({ movieId: req.params.movieId }, { $set: upd }) Si su código usa la id , entonces debe trabajar con filtros de matriz, consulte Actualizar matrices anidadas en conjunto con $[] , de manera similar a esto
db.Movies.updateOne( { movieId: req.params.movieId }, { $set: { "timeslots.$[slot].seats.$[seat].isReserved": true } }, { arrayFilters: [ { "slot.id": req.params.timeId } , { "seat.id": req.body } ] } )