重命名所有文档中的关键字段:重复键错误

时间:2017-03-14 10:30:49

标签: mongodb python-2.7 python-3.x

我需要4000个文件来更改整个文档的一个键 我试过的是

db.qa_opportunities.updateMany({},{$rename :{"tx_date":"review_date"}}) 

但它创建了两个是tx_date而另一个是review_date,一些值被移动到tx_date,一些是review_date 错误是:

WriteResult({
    "nMatched" : 0,
    "nUpserted" : 0,
    "nModified" : 0,
    "writeError" : {
        "code" : 11000,
        "errmsg" : "E11000 duplicate key error index: fielding.qa_opportunities.$tx_date_1_emp_no_1_chat_id_1 dup key: { : null, : \"P111993\", : 4343675 }"
    }
})

我需要所有值仅代表审核日期。 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您当前有一个包含tx_date字段(以及其他字段)的索引,并且由于索引配置为唯一,因此当您删除tx_date字段时,最终会出现重复索引键。< / p>

我会尝试以下方法:

  1. 分析所有索引,并记下任何引用tx_date字段
  2. 的内容
  3. 删除这些索引
  4. 将密钥从tx_date重命名为review_date
  5. 重新创建每个索引,以引用新的密钥名称review_date代替旧密钥名称tx_date。
相关问题