TL;DR :
Pokud jsou operace pomalé, použijte asynchronní ovladač nebo ve většině případů použijte běžný ovladač. Neměli byste používat základní ovladač.
Běžný ovladač MongoDB :
Obecný ovladač, který můžete použít k vyhledávání, vytváření, čtení, aktualizaci a mazání dokumentů. find(...)
, updateMany(...)
, deleteMany(...)
a podobné metody budou viset tak dlouho, dokud nebude vrácen výsledek nebo nebude provedena operace (synchronní chování). Toto je ovladač, který používá většina programů a ve většině případů je dobrý.
Zde je příklad pro vložení jednoho dokumentu:
collection.insertOne(doc);
//Do something here.
System.out.println("Inserted!")
Asynchronní ovladač MongoDB :
Další typ ovladače, který můžete použít k vyhledávání, vytváření, čtení, aktualizaci a mazání dokumentů. Tento ovladač nabízí podobné metody než běžný ovladač (find(...)
, updateMany(...)
, deleteMany(...)
, atd.).
Rozdíl oproti běžnému ovladači je v tom, že hlavní vlákno se nezasekne, protože asynchronní ovladač odešle výsledek v zpětné volání (asynchronní chování). Tento ovladač se používá, když operace mohou trvat dlouho (procházení velkého množství dat, vysoká latence, dotazy na neindexovaná pole atd.) a nechcete spravovat více vláken.
Zde je příklad zpětného volání při vkládání jednoho dokumentu:
collection.insertOne(doc, new SingleResultCallback<Void>() {
@Override
public void onResult(final Void result, final Throwable t) {
//Do something here.
System.out.println("Inserted!");
}
});
// Do something to show that the Document was not inserted yet.
System.out.println("Inserting...")
Pro více informací si přečtěte toto .
Základní ovladač MongoDB
Základní vrstva běžných a asynchronních ovladačů. Obsahuje nízkoúrovňové metody pro provádění všech operací běžných pro běžné a asynchronní ovladače. Pokud nevytváříte nové API / ovladač pro MongoDB, neměli byste používat základní ovladač.