MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Periksa Keberadaan Koleksi di MongoDB

1. Ikhtisar

MongoDB adalah database NoSQL yang menyimpan catatan data sebagai BSON dokumen menjadi koleksi. Kita dapat memiliki beberapa database, dan setiap database dapat memiliki satu atau lebih koleksi dokumen.

Tidak seperti database relasional, MongoDB membuat koleksi dengan dokumen yang disisipkan tanpa memerlukan definisi struktur apa pun. Dalam tutorial ini, kita akan mempelajari berbagai cara untuk memeriksa keberadaan koleksi. Kami akan menggunakan collectionExists, createCollection, listCollectionNames, dan hitung metode untuk memeriksa keberadaan koleksi.

2. Konektivitas Basis Data

Untuk mengakses data koleksi apa pun, pertama-tama kita perlu mengatur koneksi dengan database. Mari kita hubungkan ke database MongoDB yang berjalan secara lokal di mesin kita.

2.1. Buat Koneksi Menggunakan MongoClient

MongoClient  adalah kelas Java yang digunakan untuk membuat koneksi dengan instance MongoDB:

MongoClient mongoClient = new MongoClient("localhost", 27017);

Di sini, kita terhubung ke MongoDB yang berjalan di port default port 27017 di localhost.

2.2. Hubungkan ke Basis Data

Sekarang, mari gunakan MongoClient objek untuk mengakses database. Ada dua metode untuk mengakses database menggunakan MongoClient .

Pertama, kita akan menggunakan getDatabase metode untuk mengakses baeldung basis data:

MongoDatabase database = mongoClient.getDatabase("baeldung");

Kami juga dapat menggunakan getDB metode driver Mongo Java untuk terhubung ke database:

DB db = mongoClient.getDB("baeldung");

getDB  metode ini tidak digunakan lagi, oleh karena itu tidak disarankan untuk digunakan.

Sejauh ini, kami telah menyiapkan koneksi dengan MongoDB menggunakan MongoClient dan selanjutnya terhubung ke baeldung basis data.

Mari selami lebih dalam pendekatan yang berbeda untuk memeriksa keberadaan koleksi di MongoDB.

3. Menggunakan DB Kelas

Driver Java MongoDB menyediakan panggilan metode sinkron dan asinkron. Untuk terhubung ke database, kita hanya perlu menentukan nama database. Jika database tidak ada, MongoDB akan secara otomatis membuatnya.

Koleksi Ada metode dapat digunakan untuk memeriksa apakah koleksi ada atau tidak:

MongoClient mongoClient = new MongoClient("localhost", 27017);
DB db = mongoClient.getDB("baeldung");
String testCollectionName = "student";
System.out.println("Collection Name " + testCollectionName + " " + db.collectionExists(testCollectionName));

Di sini, koleksiAda metode akan mengembalikan benar jika koleksinya ada, false jika tidak.

com.mongodb.DB API driver Java MongoDB tidak digunakan lagi dari versi 3.x, tetapi masih dapat diakses. Oleh karena itu, DB class tidak disarankan untuk digunakan untuk proyek baru.

4. Menggunakan MongoDatabase Kelas

com.mongodb.client.MongoDatabase adalah API yang diperbarui untuk Mongo 3.x dan yang lebih baru. Berbeda dengan kelas DB, kelas MongoDatabase tidak menyediakan metode khusus untuk memeriksa keberadaan koleksi. Tapi, ada berbagai cara yang bisa kita gunakan untuk mendapatkan hasil yang diinginkan.

4.1. Menggunakan createCollection Metode

createCollection metode membuat koleksi baru di MongoDB. Tapi kita juga bisa menggunakannya untuk memeriksa apakah ada koleksi atau tidak:

String databaseName="baeldung";
MongoDatabase database = mongoClient.getDatabase(databaseName);
String testCollectionName = "student";
try {
    database.createCollection(testCollectionName);
} catch (Exception exception) {
    System.err.println("Collection:- "+testCollectionName +" already Exists");
}

Kode di atas akan membuat koleksi baru “siswa” jika belum ada di database. createCollection metode akan mengeluarkan pengecualian jika koleksi sudah ada.

Pendekatan ini tidak disarankan karena membuat koleksi baru di database.

4.2. Menggunakan listCollectionNames Metode

daftarNamaKoleksi metode mencantumkan semua nama koleksi dalam database. Oleh karena itu, kita dapat menggunakan metode ini untuk menyelesaikan masalah keberadaan koleksi.

Sekarang mari kita lihat contoh kode listCollectionNames metode menggunakan kode driver Java:

String databaseName="baeldung";
MongoDatabase database = mongoClient.getDatabase(databaseName);
String testCollectionName = "student";
boolean collectionExists = database.listCollectionNames()
  .into(new ArrayList()).contains(testCollectionName);
System.out.println("collectionExists:- " + collectionExists);

Di sini, kami telah mengulangi daftar semua nama koleksi di database baeldung. Untuk setiap kemunculan, kami mencocokkan nama string koleksi dengan testCollectionName . Ini akan mengembalikan benar pada pertandingan yang sukses, salah sebaliknya.

4.3. Menggunakan hitung Metode

jumlah metode MongoCollection menghitung jumlah dokumen yang ada dalam koleksi.

Sebagai solusinya, kita dapat menggunakan metode ini untuk memeriksa keberadaan koleksi. Berikut ini cuplikan kode Java untuk hal yang sama:

String databaseName="baeldung";
MongoDatabase database = mongoClient.getDatabase(databaseName);
String testCollectionName = "student";
MongoCollection<Document> collection = database.getCollection(testCollectionName);
Boolean collectionExists = collection.count() > 0 ? true : false;
System.out.println("collectionExists:- " + collectionExists);
Boolean expectedStatus = false;
assertEquals(expectedStatus, collectionExists);

Metode ini tidak berfungsi jika koleksi ada tanpa data apa pun, Dalam hal ini, ia akan mengembalikan 0, tetapi koleksi ada dengan data kosong.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - Ekspor Data

  2. Bagaimana saya bisa mengurutkan nol yang terakhir dipesan di mongodb?

  3. Bagaimana cara mempercepat Sisipan MongoDB/detik?

  4. Cara Menghapus Dokumen MongoDB dengan Mengimpor File

  5. Memvalidasi keunikan dokumen yang disematkan yang dicakup oleh induknya di luwak