2016-11-25 113 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