TL;DR :
Utilizzare il driver asincrono se le operazioni sono lente o utilizzare il driver normale nella maggior parte dei casi. Non dovresti usare il driver principale.
Driver normale MongoDB :
Driver generico che puoi utilizzare per cercare, creare, leggere, aggiornare ed eliminare documenti. Il find(...)
, updateMany(...)
, deleteMany(...)
e metodi simili si bloccheranno finché il risultato non viene restituito o l'operazione non viene eseguita (comportamento sincrono). Questo è il driver utilizzato dalla maggior parte dei programmi ed è valido nella maggior parte dei casi.
Ecco un esempio di inserimento di un singolo Documento:
collection.insertOne(doc);
//Do something here.
System.out.println("Inserted!")
Driver asincrono MongoDB :
Un altro tipo di driver che puoi utilizzare per cercare, creare, leggere, aggiornare ed eliminare documenti. Questo driver offre metodi simili al driver normale (find(...)
, updateMany(...)
, deleteMany(...)
, eccetera.).
La differenza con il driver normale è che il thread principale non si bloccherà perché il driver asincrono invia il risultato in un richiamata (comportamento asincrono). Questo driver viene utilizzato quando le operazioni possono richiedere molto tempo (molti dati da elaborare, latenza elevata, query su campi non indicizzati, ecc.) e non si desidera gestire più thread.
Ecco un esempio di callback durante l'inserimento di un singolo documento:
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...")
Per ulteriori informazioni, leggere questo .
Driver principale MongoDB
Livello di base dei driver normali e asincroni. Contiene metodi di basso livello per eseguire tutte le operazioni comuni ai driver normali e asincroni. A meno che tu non stia creando una nuova API/driver per MongoDB, non dovresti usare il core driver.