MongoError: E11000 duplicate key error collection: qiandao.assets index: _id
这个问题出现在mongo插入数据时,原因是主键_id重复;
众所周知,mongo在插入数据时,会自动生成主键_id,但是当我们操作async.eachSeries方法,插入数据时,会导致多个数据生成相同_id;
解决方案:自己生成一个_id,然后插入数据,这样,mongo就不会自己生成_id了;
错误代码:
async.eachSeries(data, function (itemInfo, callback) {let item = _.extend({},itemInfo);item.userId = userId;item.createdAt = Date.now();item.updatedAt = Date.now();//item._id = utils.getUUID();//插入数据modelsBox.Money.create(item).then((money) => {callback(null);}).catch((error) => {callback(error);})}, function (err) { throw err; });
正确代码:
async.eachSeries(data, function (itemInfo, callback) {let item = _.extend({},itemInfo);item.userId = userId;item.createdAt = Date.now();item.updatedAt = Date.now();item._id = utils.getUUID();//自己生成_id//插入数据modelsBox.Money.create(item).then((money) => {callback(null);}).catch((error) => {callback(error);})}, function (err) { throw err; });
觉得有用的话,给个赞吧,一起进步!!!