Inbetriebnahme des MongoDB-Client
(org.mongodb:mongodb-driver-sync)
Zur Verbindung mit der MongoDB-Instanz benötigen wir erstmal eine Darstellung der eigenen Zugangsdaten in Java. Hierzu bietet sich die Klasse
java.util.Properties an, da sie bereits das auf OLAT bereitgestellte Format einlesen kann. Ich erstelle eine Instanz von
Properties und lade die Zugangsdaten in sie hinein.
Properties mongoCredentials = new Properties();
mongoCredentials.load(new FileInputStream("./PPR_WiSe24_002.txt"));
Jetzt erstelle ich den entsprechenden Connection String (im Code
uri) gemäß der
Dokumentation.
String uri = "mongodb://"
+ mongoCredentials.getProperty("remote_user")
+ ":"
+ mongoCredentials.getProperty("remote_password")
+ "@"
+ mongoCredentials.getProperty("remote_host")
+ ":"
+ mongoCredentials.getProperty("remote_port")
+ "/?authSource="
+ mongoCredentials.getProperty("remote_database");
Zuletzt erstelle ich eine Instanz des Clients mit meinem Connection String. Der Client kann dann benutzt werden.
MongoClient mongoClient = MongoClients.create(uri);
...
Hier nochmal als lauffähiger Source-Code:
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import org.bson.Document;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
public class Main {
public static void main(String[] args) throws IOException {
// Mongo Client
Properties mongoCredentials = new Properties();
mongoCredentials.load(new FileInputStream("./PPR_WiSe24_002.txt"));
String uri = "mongodb://"
+ mongoCredentials.getProperty("remote_user")
+ ":"
+ mongoCredentials.getProperty("remote_password")
+ "@"
+ mongoCredentials.getProperty("remote_host")
+ ":"
+ mongoCredentials.getProperty("remote_port")
+ "/?authSource="
+ mongoCredentials.getProperty("remote_database");
MongoClient mongoClient = MongoClients.create(uri);
MongoCollection<Document> speeches = mongoClient
.getDatabase(mongoCredentials.getProperty("remote_database"))
.getCollection("speeches");
System.out.println(speeches.countDocuments());
}
}