我正在尝试使用db.collection.insert将对象数组(从外部api提取的数据)插入到mongoDB中。插入几个文档后,出现此错误:
BulkWriteError:E11000重复密钥错误集合:bitcoin.bitcoins索引: id dup密钥:{:ObjectId('5c7ee21ef0d6e663e84ef577')
我也尝试删除数据库,但是没有用。 ID也由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);