MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Driver Java MongoDB:Driver MongoCore versus Driver MongoDB versus Driver Async MongoDB


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.