BulkWriteError:E11000重复键错误集合

时间:2019-03-05 21:41:05

标签: javascript node.js express mongoose

我正在尝试使用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);

0 个答案:

没有答案