MongoDB到Cosmos DB索引DB迁移
有没有办法自动将索引从MongoDB迁移到Cosmos DB?我曾读到,人们必须手工完成,但不可能使用工具或脚本来完成吗?或者任何可以阅读的资源。我有大约200个集合需要迁移,其中包含多个索引,手动迁移需要花费大量时间您可以执行一些操作,如导出所有创建索引命令,然后在新数据库中执行这些命令,如所述 循环遍历所有集合,并为每个集合构造一个run命令。复制打印的命令并在新数据库中执行这些命令MongoDB到Cosmos DB索引DB迁移,mongodb,azure-cosmosdb,Mongodb,Azure Cosmosdb,有没有办法自动将索引从MongoDB迁移到Cosmos DB?我曾读到,人们必须手工完成,但不可能使用工具或脚本来完成吗?或者任何可以阅读的资源。我有大约200个集合需要迁移,其中包含多个索引,手动迁移需要花费大量时间您可以执行一些操作,如导出所有创建索引命令,然后在新数据库中执行这些命令,如所述 循环遍历所有集合,并为每个集合构造一个run命令。复制打印的命令并在新数据库中执行这些命令 var database = ‘my_new_db' // SHOULD ALWAYS MATCH DEST
var database = ‘my_new_db' // SHOULD ALWAYS MATCH DESTINATION DB NAME
db.getCollectionNames().forEach(function(collection){
var command = {}
var indexes = []
idxs = db.getCollection(collection).getIndexes()
if(idxs.length>1){
idxs.forEach(function(idoc){
if(idoc.name!='_id_'){
var ns = database+"."+idoc.ns.substr(idoc.ns.indexOf('.') + 1 )
idoc.ns = ns
indexes.push(idoc)
}
})
command['createIndexes'] = collection
command['indexes'] = indexes
print('db.runCommand(')
printjson(command)
print(')')
}
})
需要注意的是,只有在集合为空时才能创建唯一索引。就像我说的:
Azure数据库迁移服务自动迁移MongoDB
具有唯一索引的集合。但是,必须指定唯一索引
在迁移之前创建。Azure Cosmos DB不支持
当数据库中已有数据时,创建唯一索引
收藏。有关更多信息,请参阅Azure Cosmos DB中的唯一密钥
当然有可能。请阅读shell命令或文档,以获得所选语言的确切驱动程序。我发现可能会对您有所帮助。它做了一些事情,比如导出所有创建索引的命令,然后在新数据库中执行这些命令。但请注意,在cosmosdb mongo api中,只有当。但也表示迁移将支持在集合中迁移唯一索引。