While creating an Azure Pipeline to backup all Azure Cosmos databases in a subscription, I had to list all collections from all databases. For that I wrote a script.
Feel free to adapt it in order to meet your needs! Enjoy!
#Retrieve database accounts
$databaseAccounts = Get-AzResource | where ResourceType -Like "*database*"
foreach($databaseAccount in $databaseAccounts){
Write-Host "#RG:" $databaseAccount.ResourceGroupName -ForegroundColor Green
Write-Host "# databaseAccountName:" $databaseAccount.Name -ForegroundColor Green
#Retrieve databases
$databases = az cosmosdb database list --resource-group-name $databaseAccount.ResourceGroupName --name $databaseAccount.Name
$databasesConverted = $databases | ConvertFrom-Json
foreach($database in $databasesConverted){
$databaseName = $database.id
Write-Host "# databaseName:" $databaseName -ForegroundColor Green
#Retrieve collections
$allcollections = ""
$collections = az cosmosdb collection list --resource-group-name $databaseAccount.ResourceGroupName --name $databaseAccount.Name --db-name $databaseName
$collectionsConverted = $collections | ConvertFrom-Json
foreach($collection in $collectionsConverted){
$collectionName = $collection.id
Write-Host "# collectionName: " $collectionName -ForegroundColor Green
}
}
}