Este es mi código para actualizar muchos registros con mongodb.
const nfts = await waxModel.find(); console.log(nfts.length) // -> 121 // Option 1: using map() nfts.map(async nft => { nft.trait_attribute = null; await nft.save(); }); // Option 2: using loop for (let i = 0; i < nfts.length; i++) { nfts[i].trait_attribute = null; await nfts[i].save(); }
No sé ese es el problema. En mi pregunta anterior : sé que los métodos de mapa no manejan la función asíncrona, pero todavía tiene registros completos que no faltan muchos registros actualizados como ahora. Gracias por su atención.
Parece que su código no maneja bien las condiciones de carrera.
La primera opción guarda todos los nft simultáneamente, mientras que la segunda los guarda uno a la vez. Una forma más legible de hacerlo sería usar un bucle for-of:
for (const nft of nfts) { nft.trait_attribute = null; await nft.save(); }