TL; DR :
動作が遅い場合は非同期ドライバーを使用するか、ほとんどの場合通常のドライバーを使用してください。コアドライバーは使用しないでください。
MongoDBレギュラードライバー :
ドキュメントの検索、作成、読み取り、更新、削除に使用できる一般的なドライバー。 find(...)
、updateMany(...)
、deleteMany(...)
同様のメソッドは、結果が返されないか、操作が実行されない限りハングします(同期動作)。これは、ほとんどのプログラムが使用するドライバーであり、ほとんどの場合に適しています。
単一のドキュメントを挿入する例を次に示します。
collection.insertOne(doc);
//Do something here.
System.out.println("Inserted!")
MongoDB非同期ドライバー :
ドキュメントの検索、作成、読み取り、更新、削除に使用できる別の種類のドライバー。このドライバーは、通常のドライバー(find(...)
と同様のメソッドを提供します 、updateMany(...)
、deleteMany(...)
など)。
通常のドライバーとの違いは、非同期ドライバーが結果をコールバック (非同期動作)。このドライバーは、操作に時間がかかる可能性があり(大量のデータの処理、待ち時間が長い、インデックス付けされていないフィールドのクエリなど)、複数のスレッドを管理したくない場合に使用されます。
単一のドキュメントを挿入するときのコールバックの例を次に示します。
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/ドライバーを作成する場合を除いて、コアドライバーを使用しないでください。