快速提问。我有一些 JSON 传入,我将其发送到 MongoDB 集合。因为我需要不断地将来自 API 的新数据发送到数据库,所以我将 fetch
包裹在 setInterval
中。
现在的问题是,我只需要将新的和唯一的文档发送到数据库(数据库中不存在的那些,以避免重复)。它在数据库端工作,它只是将唯一性推送到集合中,但在我的终端(节点 js)中,我收到了上述(标题)错误。如果我是对的,这意味着我因为传入的 ID 已经存在而大喊大叫,但我不确定为什么我一直在终端中收到错误消息。
这是我的代码:
// SEND ALL INCOMING QUAKES TO DATABASE FOR ARCHIVING:
const every_ten_mins = 600000;
setInterval(() => {
// GET ALL EARTHQUAKES
fetch('https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_hour.geojson')
.then(resp => resp.json())
.then((json) => {
console.log(json);
// PUSH UNIQUE QUAKES TO DATABASE
const eq_collection = db.collection('earthquake_tracker');
json.features.forEach((el, idx) => {
// SET AN INDEX FOR THE 'ID' FIELD SO THAT IT CAN BE UNIQUE
eq_collection.createIndex({id: 1}, {unique: true})
try {
eq_collection.insertMany(json.features); // INSERT ONLY UNIQUE QUAKES
} catch(e) {
console.log(e);
}
});
})
.catch(err => console.log(err));
}, every_ten_mins);
我在正确的轨道上吗?如果没有,我做错了什么?我只想根据setInterval
不断将新文档(唯一)推送到数据库中。提前感谢您的帮助!