Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

203
Visualizações
Actualización de múltiples objetos en un Array perteneciente a una colección

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:

ingrese la descripción de la imagen aquí

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: ingrese la descripción de la imagen aquí

Realmente agradecería algunos consejos sobre cómo actualizar el estado de isReserved. ¡Gracias!

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

¿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 } ] } )
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda