MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB-Java-Treiber:MongoCore-Treiber vs. MongoDB-Treiber vs. MongoDB-Async-Treiber

TL;DR :

Verwenden Sie den asynchronen Treiber, wenn die Vorgänge langsam sind, oder verwenden Sie in den meisten Fällen den regulären Treiber. Sie sollten nicht den Core-Treiber verwenden.

Regulärer MongoDB-Treiber :

Allgemeiner Treiber, mit dem Sie Dokumente suchen, erstellen, lesen, aktualisieren und löschen können. Der find(...) , updateMany(...) , deleteMany(...) und ähnliche Methoden bleiben hängen, solange das Ergebnis nicht zurückgegeben oder die Operation nicht ausgeführt wird (synchrones Verhalten). Dies ist der Treiber, der von den meisten Programmen verwendet wird und in den meisten Fällen gut ist.

Hier ist ein Beispiel für das Einfügen eines einzelnen Dokuments:

collection.insertOne(doc);
//Do something here.
System.out.println("Inserted!")

MongoDB Async-Treiber :

Ein weiterer Treibertyp, mit dem Sie Dokumente suchen, erstellen, lesen, aktualisieren und löschen können. Dieser Treiber bietet ähnliche Methoden wie der reguläre Treiber (find(...) , updateMany(...) , deleteMany(...) , etc.).

Der Unterschied zum regulären Treiber besteht darin, dass der Hauptthread nicht hängen bleibt, da der asynchrone Treiber das Ergebnis in einem Rückruf (asynchrones Verhalten). Dieser Treiber wird verwendet, wenn die Vorgänge lange dauern können (viele Daten müssen durchlaufen werden, hohe Latenz, Abfragen von nicht indizierten Feldern usw.) und Sie nicht mehrere Threads verwalten möchten.

Hier ist ein Beispiel für den Callback beim Einfügen eines einzelnen Dokuments:

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...")

Weitere Informationen finden Sie unter dies .

MongoDB Core-Treiber

Basisschicht der regulären und asynchronen Treiber. Es enthält Low-Level-Methoden, um alle Vorgänge auszuführen, die den regulären und asynchronen Treibern gemeinsam sind. Sofern Sie keine neue API/Treiber für MongoDB erstellen, sollten Sie den Kerntreiber nicht verwenden.