MongoDB Java驱动程序:MongoCore驱动程序与MongoDB驱动程序与MongoDB异步驱动程序

osh3o9ms  于 2022-11-28  发布在  Go
关注(0)|答案(1)|浏览(268)

MongoDB Java驱动程序有三种不同的驱动程序选项:
1.核心驱动程序

  1. MongoDB驱动程序
  2. MongoDB异步驱动程序
    drivers description page对它们中的每一个都进行了简要描述,但没有提供关于何时应该使用它们中的每一个的进一步解释。
    我的疑问:
    1.每种方法的使用情况是什么?
    1.什么时候我应该选择一个而不是第二个,什么时候我必须/必须使用特定的驱动程序选项?
slsn1g29

slsn1g291#

TL;DR

如果操作速度慢,请使用异步驱动程序,或者在大多数情况下使用常规驱动程序。不应使用核心驱动程序。

MongoDB常规驱动程序

可用于搜索、创建、读取、更新和删除文档的通用驱动程序。find(...)updateMany(...)deleteMany(...)和类似方法将在未返回结果或未完成操作(同步行为)时挂起。这是大多数程序使用的驱动程序,在大多数情况下都很好。
以下是插入单个文档的示例:

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

MongoDB异步驱动程序

另一种类型的驱动程序,可用于搜索、创建、读取、更新和删除文档。此驱动程序提供与常规驱动程序(find(...)updateMany(...)deleteMany(...)等)类似的方法。
与常规驱动程序的不同之处在于,主线程不会挂起,因为异步驱动程序以callback(异步行为)的形式发送结果。当操作可能需要很长时间(要处理大量数据、高延迟、对未索引字段的查询等)并且您不希望管理多个线程时,可以使用此驱动程序。
以下是插入单个文档时的回调示例:

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 /驱动程序,否则你不应该使用核心驱动程序。

相关问题