Estoy obteniendo datos de una API (matriz de objetos) y luego quiero verificar en la base de datos si existe alguno de los registros, usando la URL como base para los duplicados. Cuando se trata de insertar los nuevos registros, aparece este error de monogoDB:
MongoBulkWriteError: E11000 colección de errores de clave duplicada: índice news.news: sourceUrl_1 clave duplicada: { sourceUrl: "https://example.com/article-abc123" }
try { const covidDbArticles = await News.find({ category: "Coronavirus" }); const filterCovidDuplicates = covidData.data.news.filter( (covidApiSource) => !covidDbArticles.some( (covidDatabaseSource) => covidApiSource.link === covidDatabaseSource.sourceUrl ) ); if (filterCovidDuplicates.length) { try { await News.insertMany(covidNewsObj); } catch (err) { console.log("Error inserting covid data: " + err); } } } catch (err) { console.log("saving data failed: " + err); }El filtro no cambia la matriz original. Entonces, cuando usa covidNewsObj, está enviando todos los duplicados.
Por lo tanto, deberá volver a establecer el resultado del filtro en la propiedad.
covidData.data.news = covidData.data.news.filter(...);