我正在從 API(物件陣列)中獲取資料,然后我想檢查資料庫是否存在任何記錄,使用 url 作為重復項的基礎。在插入新記錄時,我收到了這個 monogoDB 錯誤:
MongoBulkWriteError: E11000 duplicate key error collection: news.news index: sourceUrl_1 dup key: { 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);
}
uj5u.com熱心網友回復:
過濾器不會改變原始陣列。因此,當您使用 covidNewsObj 時,您將發送所有副本。
因此,您需要將過濾器的結果設定回屬性。
covidData.data.news = covidData.data.news.filter(...);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/418439.html
標籤:
