Úvod do problematiky
MongoDB se etablovala jako populární a flexibilní databázová platforma typu NoSQL, s otevřeným zdrojovým kódem. Její hlavní výhodou je schopnost efektivně pracovat s daty ve formátech JSON a BSON. Java, jakožto univerzální programovací jazyk, nabízí solidní základ pro vývoj robustních aplikací. Kombinace MongoDB a Javy otevírá vývojářům dveře k vytváření komplexních, datově orientovaných řešení.
Základní operace CRUD
CRUD (vytvoření, čtení, aktualizace a odstranění) představují klíčové operace při práci s jakoukoliv databází. V kontextu MongoDB s Javou se tyto akce realizují prostřednictvím Java driveru MongoDB, který poskytuje potřebné nástroje pro interakci s databází a správu dokumentů.
Vytvoření záznamu (Create)
Pro uložení nového dokumentu do kolekce MongoDB se nejprve vytvoří objekt typu Document
a následně se tento dokument přidá do kolekce pomocí metody insertOne()
.
java
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoClients;
import org.bson.Document;
public class VytvorDokument {
public static void main(String[] args) {
// Navázání spojení s databází
MongoClient klientMongoDB = MongoClients.create(„mongodb://localhost:27017“);
MongoDatabase databaze = klientMongoDB.getDatabase(„test“);
MongoCollection<Document> kolekce = databaze.getCollection(„person“);
// Konstrukce nového dokumentu
Document novyDokument = new Document()
.append(„jmeno“, „Jan Novak“)
.append(„vek“, 35);
// Vložení dokumentu do databáze
kolekce.insertOne(novyDokument);
// Uzavření spojení
klientMongoDB.close();
}
}
Získání záznamu (Read)
Pro načtení existujících dokumentů z kolekce MongoDB slouží metoda find()
. Tato metoda vrací kurzor, který iteruje nalezené dokumenty.
java
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoClients;
import org.bson.Document;
import org.bson.types.ObjectId;
import static com.mongodb.client.model.Filters.eq;
public class CteniDokumentu {
public static void main(String[] args) {
// Vytvoření spojení s databází
MongoClient klientMongoDB = MongoClients.create(„mongodb://localhost:27017“);
MongoDatabase databaze = klientMongoDB.getDatabase(„test“);
MongoCollection<Document> kolekce = databaze.getCollection(„person“);
// Vyhledání dokumentu dle jeho ID
Document dokument = kolekce.find(eq(„_id“, new ObjectId(„5ec35e9373894ac2305ba193“))).first();
// Získání všech dokumentů z kolekce
MongoCursor<Document> kurzor = kolekce.find().iterator();
while (kurzor.hasNext()) {
Document aktualniDokument = kurzor.next();
System.out.println(aktualniDokument.toJson());
}
// Ukončení připojení
klientMongoDB.close();
}
}
Aktualizace záznamu (Update)
Pro modifikaci existujícího dokumentu v MongoDB se využívá metoda updateOne()
. Tato metoda vyžaduje definici filtru pro identifikaci dokumentu, který se má aktualizovat, a dokument s novými hodnotami.
java
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoClients;
import org.bson.Document;
import org.bson.types.ObjectId;
import static com.mongodb.client.model.Filters.eq;
public class AktualizaceDokumentu {
public static void main(String[] args) {
// Navázání spojení s databází
MongoClient klientMongoDB = MongoClients.create(„mongodb://localhost:27017“);
MongoDatabase databaze = klientMongoDB.getDatabase(„test“);
MongoCollection<Document> kolekce = databaze.getCollection(„person“);
// Aktualizace dokumentu na základě jeho ID
Document filtr = eq(„_id“, new ObjectId(„5ec35e9373894ac2305ba193“));
Document aktualizace = new Document(„$set“, new Document(„vek“, 36));
kolekce.updateOne(filtr, aktualizace);
// Uzavření spojení
klientMongoDB.close();
}
}
Odstranění záznamu (Delete)
Pro odstranění dokumentu z MongoDB se používá metoda deleteOne()
. Tato metoda vyžaduje specifikaci filtru, který identifikuje dokument k odstranění.
java
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoClients;
import org.bson.Document;
import org.bson.types.ObjectId;
import static com.mongodb.client.model.Filters.eq;
public class SmazaniDokumentu {
public static void main(String[] args) {
// Vytvoření spojení s databází
MongoClient klientMongoDB = MongoClients.create(„mongodb://localhost:27017“);
MongoDatabase databaze = klientMongoDB.getDatabase(„test“);
MongoCollection<Document> kolekce = databaze.getCollection(„person“);
// Smazání dokumentu pomocí ID
Document filtr = eq(„_id“, new ObjectId(„5ec35e9373894ac2305ba193“));
kolekce.deleteOne(filtr);
// Uzavření připojení
klientMongoDB.close();
}
}
Závěr
Interakce s MongoDB prostřednictvím Javy a operací CRUD představuje efektivní a flexibilní způsob správy dat. Java driver pro MongoDB poskytuje intuitivní rozhraní pro provádění těchto operací. Vývojáři tak mají k dispozici solidní nástroj pro vytváření spolehlivých a výkonných aplikací, které plně využívají potenciálu databáze MongoDB.
Často kladené otázky
1. Jak se v Javě připojím k MongoDB databázi?
java
import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoClients;
public class PripojeniKMongoDB {
public static void main(String[] args) {
// Vytvoření spojení s databází
MongoClient klientMongoDB = MongoClients.create(„mongodb://localhost:27017“);
MongoDatabase databaze = klientMongoDB.getDatabase(„test“);
// Provedení dalších operací s databází…
}
}
2. Jak se v Javě vytváří kolekce v MongoDB?
java
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoClients;
public class VytvoreniKolekce {
public static void main(String[] args) {
// Vytvoření spojení s databází
MongoClient klientMongoDB = MongoClients.create(„mongodb://localhost:27017“);
MongoDatabase databaze = klientMongoDB.getDatabase(„test“);
// Vytvoření kolekce
databaze.createCollection(„person“);
}
}
3. Jak se v Javě vytvoří index v MongoDB?
java
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoClients;
import org.bson.Document;
public class VytvoreniIndexu {
public static void main(String[] args) {
// Navázání spojení s databází
MongoClient klientMongoDB = MongoClients.create(„mongodb://localhost:27017“);
MongoDatabase databaze = klientMongoDB.getDatabase(„test“);
MongoCollection<Document> kolekce = databaze.getCollection(„person“);
// Vytvoření indexu
kolekce.createIndex(new Document(„jmeno“, 1));
}
}
4. Jak v Javě provedeme filtrovaný dotaz v MongoDB?
java
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoClients;
import org.bson.Document;
public class HledaniDokumentu {
public static void main(String[] args) {
// Navázání spojení s databází
MongoClient klientMongoDB = MongoClients.create(„mongodb://localhost:27017“);
MongoDatabase databaze = klientMongoDB.getDatabase(„test“);
MongoCollection<Document> kolekce = databaze.getCollection(„person“);
// Filtrovaný dotaz
Document filtr = new Document(„vek“, new Document(„$gt“, 30));
kolekce.find(filtr).forEach(System.out::println);
}
}
5. Jak v Javě provádíme agregaci v MongoDB?
java
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoClients;
import org.bson.Document;
public class AgregaceDokumentu {
public static void main(String[] args) {
// Vytvoření spojení s databází
MongoClient klientMongoDB = MongoClients.create(„mongodb://localhost:27017“);
MongoDatabase databaze = klientMongoDB.getDatabase(„test“);
MongoCollection<Document> kolekce = databaze.getCollection(„person“);
// Provedení agregace
// Příklady agregačních pipeline jsou složitější, viz dokumentace MongoDB.
}
}