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

180
Visualizações
¿Cómo usar mongoose updateMany middleware para aumentar el rendimiento?

RESUELTO: SOLUCIÓN EN LA PARTE INFERIOR

Tengo el siguiente Código donde estoy actualizando elemento por elemento:

 //registerCustomers.js const CustomerRegistrationCode = require("../models/CustomerRegistrationCode"); const setRegCodesToUsed = async (regCodes) => { for (let regCode of regCodes) { await setRegCodeToUsed(regCode._id); } }; const setRegCodeToUsed = async (id) => { await CustomerRegistrationCode.findByIdAndUpdate(id, { used: true }); };

El código funciona bien, pero es lento y quiero actualizar muchos (1000) códigos de registro de cliente a la vez. Eché un vistazo a la función de middleware updateMany pero no encontré mucha información en línea ni en los documentos oficiales. Cambié mi código a lo siguiente, pero no sé cómo más.

 //registerCustomers.js const setRegCodesToUsed = async (regCodes) => { await CustomerRegistrationCode.updateMany(regCodes); }
 //CustomerRegistrationCode.js CustomerRegistrationCodeSchema.pre('updateMany', async function (next, a) { console.log('amount arguments: ', arguments.length); //is 2 console.log(arguments); //both parameters are functions. next(); });

¿Cuál sería la mejor manera de actualizar muchos CustomerRegistrationCodes con 1000 ID diferentes?

SOLUCIÓN, gracias a Murat Colyaran

 const setRegCodesToUsed = async (regCodes) => { const ids = []; regCodes.map(code => ids.push(code._id)); await setRegCodeToUsed(ids); }; const setRegCodeToUsed = async (ids) => { await CustomerRegistrationCode.updateMany( { _id: { $in: ids } }, { used: true } ); };
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Esto debería funcionar:

 //registerCustomers.js const CustomerRegistrationCode = require("../models/CustomerRegistrationCode"); const setRegCodesToUsed = async (regCodes) => { let ids = []; regCodes.map((code) => ids.push(code._id.toString())); await setRegCodeToUsed(ids); }; const setRegCodeToUsed = async (ids) => { await CustomerRegistrationCode.updateMany( { id : { $in: ids } }, { used: true } ); };

En lugar de enviar una consulta para cada registro, solo analizamos la id y enviamos una solicitud masiva con $in

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