1. Panoramica
In questo tutorial impareremo a controllare la connessione con MongoDB.
È importante sottolineare che per connetterci a una singola istanza MongoDB, è necessario specificare l'URI dell'istanza MongoDB.
2. Verifica della connessione utilizzando Mongo Shell
In questa sezione, ci collegheremo al server MongoDB usando il comando mongo shell. Esploreremo diversi casi di connessione a MongoDB.
2.1. Verifica della connessione sulla porta predefinita
Per impostazione predefinita, MongoDB viene eseguito sulla porta 27017, ma possiamo anche eseguirlo su un'altra porta. Possiamo connetterci al server MongoDB usando il semplice comando mongo:
$ mongo
MongoDB shell version v4.4.2
connecting to: mongodb://localhost:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("b7f80a0c-c7b9-4aea-b34c-605b85e601dd") }
MongoDB server version: 4.0.1-rc0-2-g54f1582fc6
Nel comando precedente, per impostazione predefinita, MongoDB ha assunto la porta come 27017 . Se il server MongoDB è inattivo, viene visualizzato il seguente errore:
$ mongo --host localhost --port 27017 admin
MongoDB shell version v4.4.2
connecting to: mongodb://localhost:27017/admin?compressors=disabled&gssapiServiceName=mongodb
Error: couldn't connect to server localhost:27017, connection attempt failed:
SocketException: Error connecting to localhost:27017 :: caused by :: Connection refused :
[email protected]/mongo/shell/mongo.js:374:17
@(connect):2:6
exception: connect failed
exiting with code 1
In questo caso, abbiamo ricevuto l'errore perché non siamo riusciti a connetterci al server.
2.2. Verifica della connessione sul database MongoDB protetto
MongoDB può essere protetto con l'autenticazione. In tal caso, dobbiamo passare il nome utente e la password nel comando:
$ mongo mongodb://baeldung:[email protected]:27017
Qui abbiamo usato il nome utente “baeldung” e la password "baeldung" per connettersi al MongoDB in esecuzione su localhost.
2.3. Verifica della connessione sulla porta personalizzata
Possiamo anche eseguire MongoDB su una porta personalizzata. Tutto ciò che dobbiamo fare è apportare modifiche in mongod.conf file. Se MongoDB è in esecuzione su un'altra porta, dobbiamo fornire quella porta nel comando:
$ mongo mongodb://localhost:27001
Qui, nella mongo shell, possiamo anche controllare le connessioni attualmente attive del server di database.
var status = db.serverStatus();
status.connections
{
"current" : 21,
"available" : 15979
}
Lo stato del server restituisce un documento che fornisce una panoramica dello stato corrente del processo del database. Eseguire regolarmente serverStatus il comando raccoglierà statistiche sull'istanza MongoDB.
3. Verifica della connessione utilizzando il codice driver Java
Finora, abbiamo imparato a controllare la connessione con MongoDB usando la shell. Ora esaminiamo lo stesso utilizzando il codice del driver Java:
MongoClientOptions.Builder builder = MongoClientOptions.builder();
// builder settings
ServerAddress ServerAddress = new ServerAddress("localhost", 27017);
MongoClient mongoClient = new MongoClient(ServerAddress, builder.build());
try {
System.out.println("MongoDB Server is Up:- "+mongoClient.getAddress());
System.out.println(mongoClient.getConnectPoint());
System.out.println(db.getStats());
} catch (Exception e) {
System.out.println("MongoDB Server is Down");
} finally{
mongoClient.close();
}
Nel codice sopra, abbiamo prima creato MongoClientOption builder per personalizzare le configurazioni di MongoClient connettività, quindi ha creato il MongoClient connessione utilizzando l'indirizzo del server. Supponiamo che il server MongoDB sia in esecuzione su 27017 porta dell'host locale. In caso contrario, il MongoClient genererà un errore.