MongoDB: Testen ob eine Datenbank auf der Kommandozeile existiert (bash)

English Deutsch

Verwende diesen Befehl, um zu testen, ob eine bestimmte MongoDB-Datenbank existiert:

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

Dies gibt einen Index wie 0 oder 241 zurück, wenn die Datenbank gefunden wird. Andernfalls gibt es -1 zurück, wenn die Datenbank nicht existiert.

docker-compose-Version:

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

wobei mongodb der Name deines Containers ist.

Nun können wir es in einem Bash-Skript zusammenfügen, um zu testen, ob die Datenbank existiert:

mongo_db_exists_script.sh
# Abfragen, ob DB in MongoDB existiert
mongo_indexof_db=$(mongo --quiet --eval 'db.getMongo().getDBNames().indexOf("mydb")')
if [ $mongo_indexof_db -ne "-1" ]; then
    echo "MongoDB-Datenbank existiert"
else
    echo "MongoDB-Datenbank existiert nicht"
fi

docker-compose-Variante:

docker_compose_mongo_db_exists.sh
# Abfragen, ob DB in MongoDB existiert
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-Datenbank existiert"
else
    echo "MongoDB-Datenbank existiert nicht"
fi

Check out similar posts by category: MongoDB, Shell