2016-11-25 93 views
1

我在node.js上开玩笑,我正在使用mongoose批量插入方法,即model.collection.insert在MongoDB中插入数据。当这个方法执行时会给出如下错误:猫鼬批量插入错误

但数据在数据库中成功插入。有人可以告诉我为什么我得到这个错误?

{ [MongoError: write operation failed] 
    name: 'MongoError', 
    message: 'write operation failed', 
    driver: true, 
    code: 11000, 
    writeErrors: 
    [ { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] }, 
    { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] }, 
    { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] }, 
    { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] }, 
    { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] }, 
    { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] }, 
    { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] }, 
    { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] }, 
    { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] }, 
    { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] }, 
    { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] }, 
    { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] }, 
    { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] }, 
    { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] }, 
    { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] }, 
    { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] }, 
    { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] }, 
    { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] }, 
    { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] }, 
    { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] }, 
    { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] }, 
    { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] }, 
    { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] }, 
    { code: [Getter], 
     index: [Getter], 
     errmsg: [Getter], 
     getOperation: [Function], 
     toJSON: [Function], 
     toString: [Function] } ] } 

这里是代码:

mOfferCake.collection.insert(jsonArr,{ continueOnError:真, keepGoing:真 },onInsert);

1) mOfferCake是模型和下面是代码:

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 
var offerCakeSchema = new Schema({ 
    offer_id: { 
     type: Number, 
     unique: true 
    } 
}); 

var datetime = new Date(); 
var mm = datetime.getMonth() + 1; 
if (mm < 10) { 
    mm = '0' + mm; 
} 
var dd = datetime.getDate(); 
if (dd < 10) { 
    dd = '0' + dd; 
} 
var yyyy = datetime.getFullYear(); 
var collectionName = 'MX_' + yyyy + '_' + mm + '_' + dd; 
module.exports = mongoose.model(collectionName, offerCakeSchema); 

2) jsonArr是JSON对象的阵列

3)onInsert是回调函数

function onInsert(err, docs) { 
if (err) { 
console.log(err); 
} 
else { 
    console.error("Cron bulk insert Successfully"); 
} 

}

节点版本:v4.5.0 猫鼬版本:4.6.5

回答

0

code: 11000,

E11000手段重复键错误索引。

您可能使用_id插入文档已存在于集合中。

+0

每次我插入新的数据集并自动生成_id – Vikalp