TL;DR :
Use o driver assíncrono se as operações forem lentas ou use o driver normal na maioria dos casos. Você não deve usar o driver principal.
Driver normal do MongoDB :
Driver geral que você pode usar para pesquisar, criar, ler, atualizar e excluir documentos. O
find(...)
, updateMany(...)
, deleteMany(...)
e métodos semelhantes irão travar enquanto o resultado não for retornado ou a operação não for feita (comportamento síncrono). Este é o driver que a maioria dos programas usa e é bom na maioria dos casos. Aqui está um exemplo para inserir um único documento:
collection.insertOne(doc);
//Do something here.
System.out.println("Inserted!")
Driver assíncrono MongoDB :
Outro tipo de driver que você pode usar para pesquisar, criar, ler, atualizar e excluir documentos. Este driver oferece métodos semelhantes ao driver normal (
find(...)
, updateMany(...)
, deleteMany(...)
, etc). A diferença com o driver normal é que o thread principal não travará porque o driver assíncrono envia o resultado em um retorno de chamada (comportamento assíncrono). Este driver é usado quando as operações podem levar muito tempo (muitos dados para percorrer, alta latência, consulta em campos não indexados, etc.) e você não deseja gerenciar vários threads.
Aqui está um exemplo do retorno de chamada ao inserir um único 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...")
Para mais informações, leia isto .
Driver do MongoDB Core
Camada base dos drivers regulares e assíncronos. Ele contém métodos de baixo nível para fazer todas as operações comuns aos drivers regulares e assíncronos. A menos que você esteja criando uma nova API/Driver para MongoDB, você não deve usar o driver principal.