Esta puede ser una pregunta extraña, pero creo que nada es completamente imposible.
Tengo una lista de usuarios en MongoDB, cada usuario tiene, entre otras cosas, una matriz de propiedades que actualmente está vacía.
En la hoja de Excel, tengo datos que representan las propiedades de cada usuario que quiero insertar mediante programación en la matriz de propiedades de cada usuario.
Importar la hoja de Excel es rápido y fácil de completar las propiedades de cada usuario es lo que me da el problema.
He agregado ID de usuario y PropeId de los usuarios y las propiedades que compraron, así que identifíquelos como se ve a continuación. 
router.put('/importdata', async (req, res)=>{ // upload queries const imported = req.files.importdata; const uploadpath = path.resolve(`public/excel_maneger/uploads/ ${imported.name}`); if (imported.truncated) { throw new Error("Uploaded File is too big, should not be morethan 20 MB"); } await imported.mv(uploadpath); const file = render.readFile(uploadpath); const sheets = file.SheetNames; const data = []; for (let i = 0; i < sheets.length; i++) { const sheetname = sheets[i]; const sheetData = render.utils.sheet_to_json(file.Sheets[sheetname]); sheetData.forEach((item) => { data.push(item); }); } try { const users = await User.find({role: 'Customer'}) for(let i = 0; i < users.length; i++ ){ data.forEach((d) => { if(users[i].id == d.id){ User.updateMany( {}, { $set: { properties: { propeId: d.propeId, }, }, }, (err, d) => { if (err) console.log(err); } ); } }); } } catch (err) { console.log(err) } })El problema es que este código actualiza a todos en la base de datos (incluidos los usuarios no especificados) con la misma información. Necesito ayuda, estoy tratando de importar la información de 11 mil usuarios de Excel a la base de datos.
Finalmente me di cuenta de dónde cometí el error, se supone que debo usar el operador $in: para acceder a múltiples ID según lo desee.
Aquí está la solución:
data.forEach((d) => { User.updateMany( { _id: { $in: [d.id] } }, { $push: { properties: d.propeId, }, }, (err, d) => { if (err) return false; } ); });Arriba resolvió el problema asombrosamente
Cuando está actualizando su User.updateMany() , no está pasando el Id.
Lo que hace es cuando if la declaración es true , actualiza a todos los usuarios. Puede usar findByIdAndUpdate
También deberías usar async/await . Ya que eso es lo que está usando para encontrar al usuario
await User.findByIdAndUpdate( users[i]._id,{ $set: { properties: { propeId: d.propeId }}})