微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mongoimport 和 mongorestore 无法连接到 CosmosDB 3.6,无法识别 retrywrites 选项 启用可重试写入

如何解决mongoimport 和 mongorestore 无法连接到 CosmosDB 3.6,无法识别 retrywrites 选项 启用可重试写入

在较旧的 CosmosDB 3.2 中,我能够使用 mongoimport 获取先前由 mongoexport 备份的数据并将其导入到 CosmosDB 集合中。一切都很好。

在较新的 CosmosDB 3.6 中,相同的命令出现错误

不支持可重试写入。请通过在连接字符串或等效的驱动程序特定配置中指定“retrywrites=false”来禁用可重试写入

所以我这样做了,我在连接字符串中尝试了 &retryWrites=false、&RetryWrites=false、&retrywrites=false,但我仍然遇到相同的错误。与 mongorestore 相同。

我使用的是最新的 mongo-tools v100.2.1。

有人有什么想法吗?

解决方法

我已经尝试过 this answer 的解决方案并且确实有效。

我们可以附加这个命令 --writeConcern="{w:0}",这是我的结果。

mongoimport.exe --uri "<cosmosdb_connect_string>" --db Database1 --collection collection1 --type json --file edx.json --ssl --sslAllowInvalidCertificates --writeConcern {w:0}

enter image description here

,

启用可重试写入

MongoDB 驱动程序默认不启用可重试写入

要在 MongoDB 驱动程序中启用可重试写入,请将 retryWrites 选项添加到您的连接字符串:

mongodb://localhost/?retryWrites=true

查看文档

或者像上面解释的tiny-wa那样添加--writeConcern "{w:0}"

示例”

MONGODB_HOST="<your-mongo-db-host-name>"
MONGODB_PORT="10255"
USER="<your-user-name>"

# Copy/past the primary password here
PRIMARY_PW="<your-password>"

DB_NAME="<YOUR DATABASE NAME>"
COLLECTION="<your-collection-name"

mongoimport -h $MONGODB_HOST:$MONGODB_PORT \
-d $DB_NAME -c $COLLECTION -u $USER -p $PRIMARY_PW \
--ssl  --jsonArray  --file sample_collection.json --writeConcern "{w:0}"

请参阅此处的文档以了解 Write Concern Documentation

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。