如何在命令行 (bash) 上测试 MongoDB 数据库是否存在
使用此命令测试给定的 MongoDB 数据库是否存在:
mongo_db_exists_check.sh
mongo --quiet --eval 'db.getMongo().getDBNames().indexOf("mydb")'如果找到数据库,这将返回一个索引,如 0 或 241。另一方面,如果数据库不存在,它将返回 -1。
docker-compose 版本:
docker_compose_mongo_check.sh
docker-compose exec mongodb mongo --quiet --eval 'db.getMongo().getDBNames().indexOf("mydb")'其中 mongodb 是你的容器名称。
现在我们可以将它放在一个 bash 脚本中测试数据库是否存在:
mongo_db_exists_script.sh
# 查询 MongoDB 中是否存在数据库
mongo_indexof_db=$(mongo --quiet --eval 'db.getMongo().getDBNames().indexOf("mydb")')
if [ $mongo_indexof_db -ne "-1" ]; then
echo "MongoDB 数据库存在"
else
echo "MongoDB 数据库不存在"
fidocker-compose 变体:
docker_compose_mongo_db_exists.sh
# 查询 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 数据库存在"
else
echo "MongoDB 数据库不存在"
fiIf this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow