Estoy tratando de recorrer una matriz de objetos anidados para sembrar mi mongodb. Pude lograrlo usando el siguiente bucle for, pero el problema con este es que elige un objeto aleatorio de la matriz.
const seedDB = async() => { for (let i = 0; i < 4; i++) { const which = Math.floor(Math.random() * 5); const seedLeague = new League({ title : `${leagues[which].title}`, location : `${leagues[which].location}`, city: `${leagues[which].city}`, lat: `${leagues[which].lat}`, lon: `${leagues[which].lon}` }) await seedLeague.save(); } }Lo que realmente quiero es recorrer la matriz y agregar cada objeto en la matriz. Traté de lograr eso usando forEach y for (elemento de matriz), pero ambos están dando un typeError.
const seedDB = async() => { await League.deleteMany({}); leagues.forEach( async (i)=>{ new League({ title : `${leagues[i].title}`, location : `${leagues[i].location}`, city: `${leagues[i].city}`, lat: `${leagues[i].lat}`, lon: `${leagues[i].lon}` }) await League.save(); }) } const seedDB = async() => { await League.deleteMany({}); for (let aLeague of leagues) { new League({ title : `${leagues[aLeague].title}`, location : `${leagues[aLeague].location}`, city: `${leagues[aLeague].city}`, lat: `${leagues[aLeague].lat}`, lon: `${leagues[aLeague].lon}` }) await League.save(); }¿Alguien podría ayudar y solucionar el problema con forEach y for .. of ..?
En los dos segundos, está llamando a .save() en la clase League en lugar de en una instancia de esa clase. En el primero, está asignando cada nueva instancia a una const (seedLeague) y llamando a save en eso.
Las dos segundas opciones deberían funcionar, solo necesita crear una const dentro de cada iteración del ciclo y llamar a guardar en ese nuevo objeto:
const seedDB = async() => { await League.deleteMany({}); leagues.forEach( async (i)=>{ const seedLeague = new League({ title : `${leagues[i].title}`, location : `${leagues[i].location}`, city: `${leagues[i].city}`, lat: `${leagues[i].lat}`, lon: `${leagues[i].lon}` }) await seedLeague.save(); }) }