mongodb - UpdateOne 因 E11000 重复密钥错误而失败
问题描述
我正在尝试从 go 更新 MongoDB 的文档。
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
c, _ := mongo.Connect(ctx, options.Client().ApplyURI("mongodb://localhost:27017"))
col := c.Database("epgrec").Collection("rec")
filter := bson.M{"_id": r.Mid}
update := bson.M{
"$set": bson.M{
"rid": r.Rid,
"channel": r.Channel,
"sid": r.Sid,
"pid": r.Pid,
"start": r.Start,
"duration": r.Duration,
"title": r.Title,
"status": r.Status,
"cmdarray": r.CmdArray,
"workingdir": r.WorkingDir,
},
}
res, err := col.UpdateOne(ctx, filter, update)
我在下面有错误。
multiple write errors: [{write errors: [{E11000 duplicate key error collection: epgrec.rec index: _id_ dup key: { : ObjectId('5d163936ead22a4f85f1e607') }}]}, {<nil>}]
exit status 1
使用 MongoDB 驱动程序 v1.0.3(来自 go.mongodb.org/mongo-driver/mongo)
如何避免此错误?请帮忙。
解决方案
推荐阅读
- jquery - 在 c# 中用于 jquery 的 JSON 模式
- php - 如何用扩展名重命名下载的文件
- ocaml - Ocaml:未绑定的模块数组
- azure - Azure 应用服务未连接
- git - 只读 TFVC(Team Foundation 版本控制)
- sorting - 如果在其中一列中发现出现,则从两列文件中删除行
- python - AttributeError: 模块 'tensorflow' 没有属性 'python' --> 遵循 tensorflow 调试器教程
- powershell - Powershell 从文件名中删除前导零
- android-studio - 如何更改导航栏图标的颜色?(安卓工作室)
- php - 在 php.ini 中将 session.use_cookies 设置为 0