簡體   English   中英

MongoDB Java驅動程序:MongoCore驅動程序與MongoDB驅動程序與MongoDB異步驅動程序

[英]MongoDB Java Driver: MongoCore Driver vs. MongoDB Driver vs. MongoDB Async Driver

MongoDB Java驅動程序有三種不同的驅動程序選項:

  1. 核心司機
  2. MongoDB驅動程序
  3. MongoDB異步驅動程序

驅動程序描述頁面給出了每個驅動程序描述頁面的簡要說明,但沒有提供關於何時應該使用它們的進一步解釋。 我的問題:請你澄清一下使用它們的案例是什么? 什么時候我應該更喜歡一個,當我必須/必須使用特定的驅動程序選項?

TL; DR

如果操作很慢,請使用異步驅動程序,或者在大多數情況下使用常規驅動程序。 您不應該使用核心驅動程序。

MongoDB常規驅動程序

可用於搜索,創建,讀取,更新和刪除文檔的常規驅動程序。 只要未返回結果或未執行操作(同步行為), find(...)updateMany(...)deleteMany(...)和類似方法將掛起。 這是大多數程序使用的驅動程序,並且在大多數情況下都很好。

以下是插入單個文檔的示例:

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

MongoDB異步驅動程序

您可以使用另一種類型的驅動程序來搜索,創建,讀取,更新和刪除文檔。 此驅動程序提供與常規驅動程序類似的方法( find(...)updateMany(...)deleteMany(...)等)。

與常規驅動程序的區別在於主線程不會掛起,因為異步驅動程序在回調中發送結果(異步行為)。 當操作可能需要很長時間(大量數據要經過,高延遲,在未編制索引的字段上查詢等)並且您不想管理多個線程時,將使用此驅動程序。

以下是插入單個Document時回調的示例:

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

有關更多信息,請閱讀此內容

MongoDB核心驅動程序

常規和異步驅動程序的基礎層。 它包含執行常規和異步驅動程序通用的所有操作的低級方法。 除非您為MongoDB創建新的API /驅動程序,否則不應使用核心驅動程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM