mongoimport 和 mongorestore 无法连接到 CosmosDB 3.6,无法识别 retrywrites 选项

mongoimport and mongorestore won't connect to CosmosDB 3.6, retrywrites option is not recognized

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

使用较新的 CosmosDB 3.6,相同的命令会出现错误:

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

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

相同

我正在使用最新的 mongo-tools v100.2.1.

有人有什么想法吗?

我试过 的解决方案,确实有效。

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

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

启用可重试写入

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

的文档