使用mongosh连接Cosmos DB(MongoDB 3.6版本)执行插入操作时触发MongoBulkWriteError错误的技术问询
解决Cosmos DB(MongoDB兼容3.6版)的Retryable Writes错误
这个错误是因为Cosmos DB的MongoDB 3.6兼容层不支持MongoDB原生的**重试写入(Retryable Writes)**特性,而mongosh默认会启用这个功能,所以触发了限制提示。下面是具体的解决步骤,帮你快速搞定:
1. 修改连接命令,禁用重试写入
你需要在连接时明确添加禁用重试写入的配置,有两种简单的实现方式:
方式一:在连接字符串中追加查询参数
如果你的连接URL是标准MongoDB格式,直接在末尾加上retryWrites=false参数:
mongosh.exe "mongodb://<你的连接地址>:10255/?retryWrites=false" -u user -p pawss --tls --sslAllowInvalidCertificates
方式二:使用mongosh命令行参数
直接在现有命令后追加--retryWrites false参数即可:
mongosh.exe <你的连接地址>:10255 -u user -p pawss --tls --sslAllowInvalidCertificates --retryWrites false
注意:你原来命令末尾的@echo on是Windows的终端命令,放在mongosh参数里会导致执行错误,建议去掉。
2. 修正插入命令的语法错误
你的插入命令多了一对冗余括号,会触发语法报错,正确写法如下:
// 推荐使用insertOne(语义更明确) db.xxxxxxx.insertOne({"num_id": NumberLong(2)}) // 或者兼容旧版本的insert写法 db.xxxxxxx.insert({"num_id": NumberLong(2)})
验证步骤
用修改后的命令重新连接到globaldb [direct: primary]环境,执行修正后的插入命令,就能正常写入数据了。
内容的提问来源于stack exchange,提问作者Paulo
相关产品推荐
相关产品推荐

