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

520
Visualizações
¿La mejor manera de usar Mongoose para actualizar una matriz de objetos?

mi req.body es este, proviene de mi interfaz, por lo que son un par de objetos en una matriz, me gustaría actualizar en función de los registros que coinciden, pero la página ha cambiado.

 [ [0] { [0] _id: '60393a58c772c12724aa636e', [0] title: 'newTitle2', [0] page: '8', [0] book: '010', [0] __v: 0 [0] }, [0] { [0] _id: '60394e08f6e0ad0bb077e0bc', [0] title: 'newTitle3', [0] page: '123', [0] book: '099', [0] __v: 0 [0] } [0] ]

mi ruta es esta

 router.post("/dataSend", async(req, res) => { let { title, page, book} = req.body; console.log(req.body) const filter = { title }; const update = { page}; let doc = await Data.findOneAndUpdate({title:req.body[0].title},{page: req.body[0].page}); res.send(doc) })

Entonces, esto funcionará si especifico con mongoose que quiero actualizar la primera matriz [0], pero me gustaría actualizar todo, no estoy seguro si .map o forEach o un bucle es el camino a seguir.

Algunas ideas

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

En lugar de llamar a findOneAndUpdate en un bucle, creo que bulkWrite (docs) sería la mejor opción en este caso, por lo que no envía sus actualizaciones a Mongo una por una. Puede mapear sus operaciones de actualización y enviarlas en un lote. Consulte el siguiente fragmento para ver un ejemplo:

 router.post("/dataSend", async(req, res) => { const records = req.body const updateOps = records.map(record => { const updateOp = { 'updateOne': { 'filter': { 'title': record.title, }, 'update': { 'page': record.page }, } } return updateOp }) const result = await Data.bulkWrite(updateOps) res.send(result) })

over 4 years ago · Santiago Trujillo 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