TL;DR :
Użyj sterownika asynchronicznego, jeśli operacje są powolne, lub w większości przypadków użyj zwykłego sterownika. Nie powinieneś używać podstawowego sterownika.
Zwykły sterownik MongoDB :
Ogólny sterownik, za pomocą którego można wyszukiwać, tworzyć, czytać, aktualizować i usuwać dokumenty. find(...)
, updateMany(...)
, deleteMany(...)
i podobne metody będą zawieszone, dopóki wynik nie zostanie zwrócony lub operacja nie zostanie wykonana (zachowanie synchroniczne). Jest to sterownik używany przez większość programów i w większości przypadków jest dobry.
Oto przykład wstawiania pojedynczego dokumentu:
collection.insertOne(doc);
//Do something here.
System.out.println("Inserted!")
Sterownik asynchroniczny MongoDB :
Inny typ sterownika, którego można używać do wyszukiwania, tworzenia, czytania, aktualizowania i usuwania dokumentów. Ten sterownik oferuje podobne metody niż zwykły sterownik (find(...)
, updateMany(...)
, deleteMany(...)
itp.).
Różnica w stosunku do zwykłego sterownika polega na tym, że główny wątek nie będzie się zawieszał, ponieważ sterownik asynchroniczny wysyła wynik w oddzwanianie (zachowanie asynchroniczne). Ten sterownik jest używany, gdy operacje mogą zająć dużo czasu (dużo danych do przetworzenia, duże opóźnienia, zapytania dotyczące nieindeksowanych pól itp.) i nie chcesz zarządzać wieloma wątkami.
Oto przykład wywołania zwrotnego podczas wstawiania pojedynczego 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...")
Aby uzyskać więcej informacji, przeczytaj to .
Podstawowy sterownik MongoDB
Warstwa podstawowa sterowników zwykłych i asynchronicznych. Zawiera metody niskiego poziomu do wykonywania wszystkich operacji wspólnych dla sterowników zwykłych i asynchronicznych. Jeśli nie tworzysz nowego API/sterownika dla MongoDB, nie powinieneś używać podstawowego sterownika.