首页 > 解决方案 > MongoDB:使用replaceOne重复键错误索引

问题描述

我有一个带索引的集合

{
   "v" : 2,
   "unique" : true,
   "key" : {
     "username" : 1
   },
   "name" : "username_1",
   "ns" : "heroku_25.player"
}

我运行查询

db.player.replaceOne({"username":"QdAKu"}, {"username":"QdAKu","name":"Blaksm","timePlayedTotal":4807724700}, {upsert:true});

我得到错误

MongoError: E11000 duplicate key error index: heroku_25.player.$username_1 dup key: { : "QdAKu" }

我正在使用 nodejs,带有mongodb 3.5.5.

什么可能导致错误?如果查询是{"username":"QdAKu"}并且键是 only username,我不应该有重复键索引的错误。

该错误并非总是发生,只是在生产服务器上很少发生。

标签: node.jsmongodb

解决方案


推荐阅读