Como testar se banco de dados MongoDB existe na linha de comando (bash)

Use este comando para testar se um banco de dados MongoDB dado existe:

mongo_db_exists_check.sh
mongo --quiet --eval 'db.getMongo().getDBNames().indexOf("mydb")'

Isso retornará um índice tal como 0 ou 241 se o banco de dados for encontrado. Por outro lado, retornará -1 se o banco de dados não existir.

Versão docker-compose:

docker_compose_mongo_check.sh
docker-compose exec mongodb mongo --quiet --eval 'db.getMongo().getDBNames().indexOf("mydb")'

onde mongodb é o nome do seu container.

Agora podemos juntar isso em um script bash para testar se o banco de dados existe:

mongo_db_exists_script.sh
# Query if DB exists in MongoDB
mongo_indexof_db=$(mongo --quiet --eval 'db.getMongo().getDBNames().indexOf("mydb")')
if [ $mongo_indexof_db -ne "-1" ]; then
    echo "MongoDB database exists"
else
    echo "MongoDB database does not exist"
fi

Variante docker-compose:

docker_compose_mongo_db_exists.sh
# Query if DB exists in MongoDB
mongo_indexof_db=$(docker-compose -f inspect.yml exec -T mongodb mongo --quiet --eval 'db.getMongo().getDBNames().indexOf("mydb")')
if [ $mongo_indexof_db -ne "-1" ]; then
    echo "MongoDB database exists"
else
    echo "MongoDB database does not exist"
fi

Check out similar posts by category: MongoDB Shell