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...")
1条答案
按热度按时间slsn1g291#
TL;DR:
如果操作速度慢,请使用异步驱动程序,或者在大多数情况下使用常规驱动程序。不应使用核心驱动程序。
MongoDB常规驱动程序:
可用于搜索、创建、读取、更新和删除文档的通用驱动程序。
find(...)
、updateMany(...)
、deleteMany(...)
和类似方法将在未返回结果或未完成操作(同步行为)时挂起。这是大多数程序使用的驱动程序,在大多数情况下都很好。以下是插入单个文档的示例:
MongoDB异步驱动程序:
另一种类型的驱动程序,可用于搜索、创建、读取、更新和删除文档。此驱动程序提供与常规驱动程序(
find(...)
、updateMany(...)
、deleteMany(...)
等)类似的方法。与常规驱动程序的不同之处在于,主线程不会挂起,因为异步驱动程序以callback(异步行为)的形式发送结果。当操作可能需要很长时间(要处理大量数据、高延迟、对未索引字段的查询等)并且您不希望管理多个线程时,可以使用此驱动程序。
以下是插入单个文档时的回调示例:
欲了解更多信息,请阅读此。
MongoDB核心驱动程序
常规和异步驱动程序的基础层。它包含低级方法来完成常规和异步驱动程序的所有操作。除非你正在为MongoDB制作一个新的API /驱动程序,否则你不应该使用核心驱动程序。