sql >> Databáze >  >> NoSQL >> MongoDB

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

TL;DR :

Pokud jsou operace pomalé, použijte asynchronní ovladač nebo ve většině případů použijte běžný ovladač. Neměli byste používat základní ovladač.

Běžný ovladač MongoDB :

Obecný ovladač, který můžete použít k vyhledávání, vytváření, čtení, aktualizaci a mazání dokumentů. find(...) , updateMany(...) , deleteMany(...) a podobné metody budou viset tak dlouho, dokud nebude vrácen výsledek nebo nebude provedena operace (synchronní chování). Toto je ovladač, který používá většina programů a ve většině případů je dobrý.

Zde je příklad pro vložení jednoho dokumentu:

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

Asynchronní ovladač MongoDB :

Další typ ovladače, který můžete použít k vyhledávání, vytváření, čtení, aktualizaci a mazání dokumentů. Tento ovladač nabízí podobné metody než běžný ovladač (find(...) , updateMany(...) , deleteMany(...) , atd.).

Rozdíl oproti běžnému ovladači je v tom, že hlavní vlákno se nezasekne, protože asynchronní ovladač odešle výsledek v zpětné volání (asynchronní chování). Tento ovladač se používá, když operace mohou trvat dlouho (procházení velkého množství dat, vysoká latence, dotazy na neindexovaná pole atd.) a nechcete spravovat více vláken.

Zde je příklad zpětného volání při vkládání jednoho dokumentu:

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

Pro více informací si přečtěte toto .

Základní ovladač MongoDB

Základní vrstva běžných a asynchronních ovladačů. Obsahuje nízkoúrovňové metody pro provádění všech operací běžných pro běžné a asynchronní ovladače. Pokud nevytváříte nové API / ovladač pro MongoDB, neměli byste používat základní ovladač.




  1. Jaký je rozdíl mezi žurnálovou a nežurnálovou databází Mongodb

  2. Odstraňte vnořený dokument s podmínkou v MongoDB

  3. Jak napsat aktualizační dotaz v mongodb pro hluboce vnořené pole?

  4. Jak se připojím k mongodb pomocí node.js (a ověřím)?