How to test if MongoDB database exists on command line (bash)
Use this command to test if a given MongoDB database exists:
mongo --quiet --eval 'db.getMongo().getDBNames().indexOf("mydb")'
This will return an index such as 0
or 241
if the database is found. On the other hand, it will return -1
if the database does not exist.
docker-compose
version:
docker-compose exec mongodb mongo --quiet --eval 'db.getMongo().getDBNames().indexOf("mydb")'
where mongodb
is the name of your container.
Now we can put it together in a bash script to test if the database exists:
# 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
docker-compose
variant:
# 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