将 Cosmos DB 模拟器 (MongoDB API) 迁移到 Azure 时出现致命错误

Fatal error while migrating Cosmos DB Emulator (MongoDB API) to Azure

我在将托管在 Cosmos DB 模拟器中的本地主机 Cosmos DB 数据库迁移到 Azure 上的在线 Cosmos DB 实例时遇到了很多问题。 我已经使用 Microsoft 的数据迁移工具上传当前数据库,转换为 JSON 文件,到存储帐户,并使用数据迁移服务将数据从存储帐户提取到 Cosmos DB 数据库,根据显示的步骤 here.

迁移开始时,我收到以下致命错误:

Cannot deserialize a 'BsonDocument' from BsonType 'Array'

我不知道如何进行。有没有人有过此类转换的经验并且知道如何克服这个错误?

当其他人将来遇到同样的问题时:我应用了以下方法来完成这项工作:

  • 下载 Mongodump Full MongoDB Server download here
  • 使用 mongodump 转储 Cosmos DB 模拟数据库
  • 将生成的 .bson 和元数据文件复制到 Azure 存储帐户(Blob 存储)
  • 使用 Azure 存储资源管理器为此帐户获取 SAS url
  • 创建新的 Azure 数据库迁移服务 (MongoDB => Cosmos DB (MongoDB API))
  • 将 Azure 存储设置为源,并输入 SAS url
  • 将您的 Cosmos DB 数据库设置为目标

使用 mongodump,数据生成到 Cosmos DB 可以理解的文件结构中。