Я пытаюсь вставить массив объектов (данные, извлеченные из внешнего API) в mongoDB, используя db.collection.insert. После вставки нескольких документов я получаю эту ошибку:
BulkWriteError: Коллекция ошибок дубликатов ключей E11000: индекс bitcoin.bitcoins: id ключ дубликата: {: ObjectId ('5c7ee21ef0d6e663e84ef577')
Я тоже пытался сбросить базу данных, но безрезультатно. Также идентификаторы автоматически генерируются Mongo.
Код выглядит так:
const express = require('express');
const router = express.Router();
const rp = require('request-promise');
const moment = require('moment');
var Bitcoin = require('../models/bitcoin_model');
var bitcoinArray = [];
var options = {
method: 'GET',
uri: 'https://bittrex.com/api/v1.1/public/getmarketsummaries',
json: true
};
setInterval(function () {
rp(options)
.then(function (response) {
response.result.forEach((item) => {
bitcoinArray.push({
timestamp: item.TimeStamp,
marketname: item.MarketName,
high: item.High,
low: item.Low,
volume: item.BaseVolume
})
})
bitcoinArray.forEach((item) => console.log(item));
Bitcoin.collection.insertMany(bitcoinArray, function (err, result) {
if (err) {
console.error(err);
} else {
console.log("Multiple documents inserted to Collection");
}
});
})
.catch((err) => {
console.log(err);
});
}, 60000);
Модель выглядит так:
var mongoose = require('mongoose');
var bitcoinSchema = mongoose.Schema({
timestamp: Date,
marketname: String,
high: Number,
low: Number,
volume: Number
});
module.exports = mongoose.model('bitcoin', bitcoinSchema);