sql >> Base de Datos >  >> NoSQL >> MongoDB

Controlador MongoDB Java:controlador MongoCore frente a controlador MongoDB frente a controlador asíncrono MongoDB

TL;RD :

Utilice el controlador asíncrono si las operaciones son lentas o utilice el controlador normal en la mayoría de los casos. No debe usar el controlador principal.

Controlador normal de MongoDB :

Controlador general que puede utilizar para buscar, crear, leer, actualizar y eliminar documentos. El find(...) , updateMany(...) , deleteMany(...) y los métodos similares se bloquearán mientras no se devuelva el resultado o no se realice la operación (comportamiento síncrono). Este es el controlador que usa la mayoría de los programas y es bueno en la mayoría de los casos.

Aquí hay un ejemplo para insertar un solo documento:

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

Controlador asíncrono de MongoDB :

Otro tipo de controlador que puede utilizar para buscar, crear, leer, actualizar y eliminar documentos. Este controlador ofrece métodos similares a los del controlador normal (find(...) , updateMany(...) , deleteMany(...) , etc.).

La diferencia con el controlador normal es que el hilo principal no se bloqueará porque el controlador asíncrono envía el resultado en un devolución-de-llamada (comportamiento asíncrono). Este controlador se usa cuando las operaciones pueden llevar mucho tiempo (una gran cantidad de datos para procesar, alta latencia, consultas en campos no indexados, etc.) y no desea administrar varios subprocesos.

Este es un ejemplo de devolución de llamada al insertar un solo 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 obtener más información, lea esto .

Controlador principal de MongoDB

Capa base de los controladores regulares y asíncronos. Contiene métodos de bajo nivel para realizar todas las operaciones comunes a los controladores normales y asíncronos. A menos que esté creando una nueva API/controlador para MongoDB, no debe usar el controlador principal.