Saltar al contenido

¿Compruebe si existe la base de datos mongodb?

Nuestros mejores desarrolladores agotaron sus reservas de café, por su búsqueda noche y día por la respuesta, hasta que Gustavo encontró la solución en GitHub por lo tanto hoy la compartimos con nosotros.

Solución:

Sí, puede obtener la lista de bases de datos existentes. Desde el controlador de Java, puede hacer algo como esto para obtener los nombres de la base de datos en un mongod servidor que se ejecuta en localhost

Mongo mongo = new Mongo( "127.0.0.1", 27017 );
List databaseNames = mongo.getDatabaseNames();

Esto es equivalente al comando mongo shell “show dbs”. Estoy seguro de que existen métodos similares en todos los controladores.

Desde el shell, si desea verificar explícitamente que existe una base de datos:

db.getMongo().getDBNames().indexOf("mydb");

Devolverá ‘-1’ si “mydb” no existe.

Para usar esto desde el shell:

if [ $(mongo localhost:27017 --eval 'db.getMongo().getDBNames().indexOf("mydb")' --quiet) -lt 0 ]; then
    echo "mydb does not exist"
else
    echo "mydb exists"
fi

Para cualquiera que venga aquí porque el método getDatabaseNames(); está depreciado / no disponible, aquí está la nueva forma de obtener la lista de bases de datos existentes:

MongoClient mongoClient = new MongoClient();
MongoCursor dbsCursor = mongoClient.listDatabaseNames().iterator();
while(dbsCursor.hasNext()) 
    System.out.println(dbsCursor.next());

Aquí hay un método que valida si se encuentra la base de datos:

public Boolean databaseFound(String databaseName)
    MongoClient mongoClient = new MongoClient(); //Maybe replace it with an already existing client
    MongoCursor dbsCursor = mongoClient.listDatabaseNames().iterator();
    while(dbsCursor.hasNext()) 
        if(dbsCursor.next().equals(databaseName))
            return true;
    
    return false;

Te mostramos las reseñas y valoraciones de los usuarios

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *