sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB Java Driver:MongoCore Driver vs. MongoDB Driver vs. MongoDB Async Driver

TL;DR :

Använd den asynkroniserade drivrutinen om operationerna är långsamma, eller använd den vanliga drivrutinen i de flesta fall. Du bör inte använda kärndrivrutinen.

MongoDB Regular Driver :

Allmän drivrutin som du kan använda för att söka, skapa, läsa, uppdatera och ta bort dokument. find(...) , updateMany(...) , deleteMany(...) och liknande metoder kommer att hänga sig så länge resultatet inte returneras eller operationen inte utförs (synkront beteende). Detta är drivrutinen som de flesta program använder och är bra i de flesta fall.

Här är ett exempel för att infoga ett enda dokument:

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

MongoDB Async-drivrutin :

En annan typ av drivrutin som du kan använda för att söka, skapa, läsa, uppdatera och ta bort dokument. Denna drivrutin erbjuder liknande metoder än den vanliga drivrutinen (find(...) , updateMany(...) , deleteMany(...) , etc.).

Skillnaden med den vanliga drivrutinen är att huvudtråden inte hänger sig eftersom den asynkroniserade drivrutinen skickar resultatet i en återuppringning (asynkront beteende). Denna drivrutin används när operationerna kan ta lång tid (mycket data att gå igenom, hög latens, fråga på oindexerade fält, etc.) och du inte vill hantera flera trådar.

Här är ett exempel på återuppringning när ett enskilt dokument infogas:

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

För mer information, läs detta .

MongoDB Core Driver

Basskiktet för de vanliga och asynkrona drivrutinerna. Den innehåller metoder på låg nivå för att utföra alla operationer som är gemensamma för vanliga och asynkrona drivrutiner. Om du inte skapar ett nytt API/drivrutin för MongoDB, bör du inte använda kärndrivrutinen.




  1. Hur använder jag Map/Reduce i MongoDB?

  2. Hur man får alla resultat om avkopplingsfältet inte finns i mongodb

  3. Testa att installera mongodb med dijango?

  4. Strategier för realtidsaggregationer i MongoDB