Misalnya, sertakan kode berikut untuk terhubung ke penerapan MongoDB mandiri yang berjalan di localhost pada port MongoClient mongoClient = MongoClients.create(); 0
MongoClient mongoClient = MongoClients.create();Untuk informasi lebih lanjut tentang menghubungkan ke penerapan MongoDB yang berjalan, lihat Hubungkan ke MongoDB
Mengakses Basis Data
Setelah Anda memiliki instance MongoClient mongoClient = MongoClients.create(); _1 yang terhubung ke penerapan MongoDB, gunakan metodenya untuk mengakses database
Tentukan nama database ke metode MongoClient mongoClient = MongoClients.create(); 2. Jika database tidak ada, MongoDB membuat database saat Anda pertama kali menyimpan data untuk database tersebut
Contoh berikut mengakses database MongoClient mongoClient = MongoClients.create(); 4
MongoDatabase database = mongoClient.getDatabase("test");Catatan
MongoClient mongoClient = MongoClients.create(); 5 instance tidak dapat diubah
Akses Koleksi
Setelah Anda memiliki instance MongoClient mongoClient = MongoClients.create(); 5, gunakan metodenya untuk mengakses koleksi
Tentukan nama koleksi ke metode MongoClient mongoClient = MongoClients.create(); 7
Misalnya, menggunakan instance MongoClient mongoClient = MongoClients.create(); _9, pernyataan berikut mengakses koleksi bernama MongoDatabase database = mongoClient.getDatabase("test"); 0
MongoCollection<Document> coll = database.getCollection("myTestCollection");Catatan
MongoDatabase database = mongoClient.getDatabase("test"); 1 instance tidak dapat diubah
Jika kumpulan tidak ada, MongoDB membuat kumpulan saat Anda pertama kali menyimpan data untuk kumpulan itu
Anda juga bisa secara eksplisit membuat koleksi dengan berbagai opsi, seperti menyetel ukuran maksimum atau aturan validasi dokumentasi
Buat Koleksi Secara Eksplisit
Driver MongoDB menyediakan metode untuk membuat koleksi secara eksplisit. Saat Anda membuat koleksi secara eksplisit, Anda dapat menentukan berbagai opsi koleksi, seperti ukuran maksimum atau aturan validasi dokumentasi, dengan kelas MongoDatabase database = mongoClient.getDatabase("test"); 3. Jika Anda tidak menentukan opsi ini, Anda tidak perlu membuat koleksi secara eksplisit karena MongoDB membuat koleksi baru saat pertama kali menyimpan data untuk koleksi
Koleksi Tertutup
Misalnya, operasi berikut membuat koleksi yang dibatasi berukuran hingga 1 megabita
Validasi Dokumen
MongoDB menyediakan kemampuan untuk memvalidasi dokumen selama pembaruan dan penyisipan. Aturan validasi ditentukan berdasarkan per koleksi menggunakan MongoDatabase database = mongoClient.getDatabase("test"); 4, yang mengambil dokumen filter yang menentukan aturan atau ekspresi validasi
ValidationOptions collOptions = new ValidationOptions().validator( Filters.or(Filters.exists("email"), Filters.exists("phone"))); database.createCollection("contacts", new CreateCollectionOptions().validationOptions(collOptions));Dapatkan Daftar Koleksi
Anda bisa mendapatkan daftar koleksi dalam database menggunakan metode ini
for (String name : database.listCollectionNames()) { System.out.println(name); }Jatuhkan Koleksi
Anda dapat menjatuhkan koleksi dengan menggunakan metode ini
MongoCollection<Document> collection = database.getCollection("contacts"); collection.drop();Kekekalan
MongoClient mongoClient = MongoClients.create(); 5 dan MongoDatabase database = mongoClient.getDatabase("test"); 1 instance tidak dapat diubah. Untuk membuat instance baru dari instance yang ada yang memiliki nilai properti berbeda, seperti read concern, read preference, dan write concern, kelas MongoClient mongoClient = MongoClients.create(); 5 dan MongoDatabase database = mongoClient.getDatabase("test"); 1 menyediakan berbagai metode
Untuk mengetahui detailnya, lihat Operasi Baca dan Operasi Tulis
CodecRegistry
Kelebihan metode MongoCollection<Document> coll = database.getCollection("myTestCollection"); _7 memungkinkan klien untuk menentukan kelas yang berbeda untuk mewakili dokumen BSON. Misalnya, pengguna CRUD API lama dari 2. x driver series mungkin ingin terus menggunakan MongoCollection<Document> coll = database.getCollection("myTestCollection"); 8 untuk memudahkan transisi ke CRUD API baru
// Pass BasicDBObject.class as the second argument MongoCollection<BasicDBObject> collection = database.getCollection("mycoll", BasicDBObject.class); // insert a document BasicDBObject document = new BasicDBObject("x", 1) collection.insertOne(document); document.append("x", 2).append("y", 3); // replace a document collection.replaceOne(Filters.eq("_id", document.get("_id")), document); // find documents List<BasicDBObject> foundDocument = collection.find().into(new ArrayList<BasicDBObject>());Ada dua persyaratan yang harus dipenuhi untuk setiap kelas yang digunakan dengan cara ini
- a MongoCollection<Document> coll = database.getCollection("myTestCollection"); _9 karena harus terdaftar di MongoDatabase database = mongoClient.getDatabase("test"); 1 database.createCollection("cappedCollection", new CreateCollectionOptions().capped(true).sizeInBytes(0x100000)); 1
- MongoCollection<Document> coll = database.getCollection("myTestCollection"); _9 harus yang mengenkode dan mendekode dokumen BSON lengkap (dan bukan hanya, misalnya, nilai BSON tunggal seperti Int32)
Secara default, MongoDatabase database = mongoClient.getDatabase("test"); _1 dikonfigurasi dengan MongoCollection<Document> coll = database.getCollection("myTestCollection"); 9s untuk tiga kelas
- database.createCollection("cappedCollection", new CreateCollectionOptions().capped(true).sizeInBytes(0x100000)); _5
- MongoCollection<Document> coll = database.getCollection("myTestCollection"); _8
- database.createCollection("cappedCollection", new CreateCollectionOptions().capped(true).sizeInBytes(0x100000)); _7
Namun, aplikasi bebas mendaftarkan implementasi MongoCollection<Document> coll = database.getCollection("myTestCollection"); _9 untuk kelas lain dengan menyesuaikan database.createCollection("cappedCollection", new CreateCollectionOptions().capped(true).sizeInBytes(0x100000)); 1. Instance database.createCollection("cappedCollection", new CreateCollectionOptions().capped(true).sizeInBytes(0x100000)); _1 baru dapat dikonfigurasi pada tiga level
- Dalam MongoClient mongoClient = MongoClients.create(); 1 melalui ValidationOptions collOptions = new ValidationOptions().validator( Filters.or(Filters.exists("email"), Filters.exists("phone"))); database.createCollection("contacts", new CreateCollectionOptions().validationOptions(collOptions)); 2
- Dalam MongoClient mongoClient = MongoClients.create(); 5 melalui metode ValidationOptions collOptions = new ValidationOptions().validator( Filters.or(Filters.exists("email"), Filters.exists("phone"))); database.createCollection("contacts", new CreateCollectionOptions().validationOptions(collOptions)); 4
- Dalam MongoDatabase database = mongoClient.getDatabase("test"); _1 melalui metode ValidationOptions collOptions = new ValidationOptions().validator( Filters.or(Filters.exists("email"), Filters.exists("phone"))); database.createCollection("contacts", new CreateCollectionOptions().validationOptions(collOptions)); 4
Pertimbangkan kasus encoding dan decoding instance dari kelas ValidationOptions collOptions = new ValidationOptions().validator( Filters.or(Filters.exists("email"), Filters.exists("phone"))); database.createCollection("contacts", new CreateCollectionOptions().validationOptions(collOptions)); 7. Driver Java secara default menyandikan instance ValidationOptions collOptions = new ValidationOptions().validator( Filters.or(Filters.exists("email"), Filters.exists("phone"))); database.createCollection("contacts", new CreateCollectionOptions().validationOptions(collOptions)); 7 menggunakan pengurutan byte yang tidak kompatibel dengan driver MongoDB lainnya, dan mengubah default akan sangat berbahaya. Namun aplikasi baru yang memerlukan interoperabilitas di beberapa driver dapat mengubah default tersebut, dan mereka dapat melakukannya dengan database.createCollection("cappedCollection", new CreateCollectionOptions().capped(true).sizeInBytes(0x100000)); 1