MongoDB 驱动程序取决于在 Java 项目中的具体需求和用例。本文主要介绍Java中MongoDB的三种驱动,MongoCore驱动、MongoDB驱动和MongoDB异步驱动,以及驱动的具体的使用情况。

1、MongoDB常规驱动程序

可用于搜索,创建,读取,更新和删除文档的常规驱动程序。的find(...)updateMany(...)deleteMany(...)和类似的方法将挂起,只要结果不返回或操作没有完成(同步行为)。这是大多数程序使用的驱动程序,并且在大多数情况下都很好。

以下是插入单个文档的示例:

collection.insertOne(doc);
System.out.println("Inserted!")

2、MongoDB异步驱动程序

可以使用另一种类型的驱动程序来搜索,创建,读取,更新和删除文档。此驱动程序提供了比常规的驱动程序(类似的方法find(...)updateMany(...)deleteMany(...)等)。

与常规驱动程序的区别在于主线程不会挂起,因为异步驱动程序在回调中发送结果(异步行为)。当操作可能需要很长时间(大量数据要经过,高延迟,在未编制索引的字段上查询等)并且不想管理多个线程时,将使用此驱动程序。

以下是插入单个Document时回调的示例:

collection.insertOne(doc, new SingleResultCallback<Void>() {
@Override
public void onResult(final Void result, final Throwable t) {
System.out.println("Inserted!");
}
});
System.out.println("Inserting...")

3、MongoCore驱动程序

常规和异步驱动程序的基础层。它包含执行常规和异步驱动程序通用的所有操作的低级方法。除非为MongoDB创建新的API /驱动程序,否则不应使用MongoCore驱动程序。