当前位置: 代码迷 >> 综合 >> MongoError: E11000 duplicate key error collection: qiandao.assets index: _id
  详细解决方案

MongoError: E11000 duplicate key error collection: qiandao.assets index: _id

热度:97   发布时间:2024-01-24 23:06:52.0
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; });

觉得有用的话,给个赞吧,一起进步!!!

  相关解决方案