TL;DR :
Gunakan driver async jika operasinya lambat, atau gunakan driver biasa dalam banyak kasus. Anda sebaiknya tidak menggunakan driver inti.
Pengemudi Reguler MongoDB :
Driver umum yang dapat Anda gunakan untuk mencari, membuat, membaca, memperbarui, dan menghapus dokumen. find(...)
, updateMany(...)
, deleteMany(...)
dan metode serupa akan hang selama hasilnya tidak dikembalikan atau operasi tidak dilakukan (perilaku sinkron). Ini adalah driver yang digunakan sebagian besar program dan bagus dalam banyak kasus.
Berikut adalah contoh untuk menyisipkan satu Dokumen:
collection.insertOne(doc);
//Do something here.
System.out.println("Inserted!")
Driver Asinkron MongoDB :
Jenis driver lain yang dapat Anda gunakan untuk mencari, membuat, membaca, memperbarui, dan menghapus dokumen. Driver ini menawarkan metode yang mirip dengan driver biasa (find(...)
, updateMany(...)
, deleteMany(...)
, dll.).
Perbedaan dengan driver biasa adalah bahwa utas utama tidak akan hang karena driver async mengirimkan hasilnya dalam panggilan balik (perilaku asinkron). Driver ini digunakan ketika operasi dapat memakan waktu lama (banyak data yang harus dilalui, latensi tinggi, kueri pada bidang yang tidak diindeks, dll.) dan Anda tidak ingin mengelola banyak utas.
Berikut adalah contoh callback saat menyisipkan satu Dokumen:
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...")
Untuk informasi lebih lanjut, baca ini .
Pengandar Inti MongoDB
Lapisan dasar dari driver reguler dan async. Ini berisi metode tingkat rendah untuk melakukan semua operasi umum untuk driver reguler dan async. Kecuali Anda membuat API/Driver baru untuk MongoDB, Anda tidak boleh menggunakan driver inti.