Apakah MongoDB mendukung Java
Memulai dengan MongoDB dan Java – Tutorial Operasi CRUD
Anda dapat mengatur com.Mongodb.Properti writeConcern yang akan digunakan MongoTemplate untuk operasi penulisan jika belum ditentukan melalui driver di tingkat yang lebih tinggi seperti COM.Mongodb.Mongo. Jika properti WriteConcern Mongotemplate tidak akan ditetapkan, itu akan default ke satu set di DB driver MongoDB atau pengaturan pengumpulan.
Ringkasan
Dalam tutorial ini, kami akan mengeksplorasi cara memulai dengan Mongodb dan Java. Kami akan membahas operasi dasar crud (buat, baca, perbarui, hapus) menggunakan driver java mongoDB dan data spring mongodb.
Poin -Poin Kunci:
- Dukungan MongoDB untuk Java mencakup berbagai fitur.
- Spring menyediakan dukungan konfigurasi untuk mongoDB menggunakan kelas @Configuration berbasis java atau namespace XML.
- Kelas Mongotemplate adalah utilitas yang bermanfaat untuk melakukan operasi MongoDB umum dan pemetaan objek antara dokumen dan pojos.
- Terjemahan Pengecualian ke dalam Hirarki Pengecualian Akses Data Portabel Spring.
- Layanan konversi musim semi terintegrasi dengan pemetaan objek yang kaya fitur MongoDB.
- Metadata pemetaan berbasis anotasi tersedia dan dapat diperluas untuk mendukung format lain.
- Kegigihan dan pemetaan acara siklus hidup didukung.
- Kueri, kriteria, dan pembaruan DSL yang berbasis di Java disediakan.
- Implementasi otomatis antarmuka repositori didukung, termasuk metode pencari khusus.
- Integrasi QueryDSL memungkinkan kueri yang aman jenis.
- Kegigihan lintas-toko didukung, memungkinkan entitas JPA bertahan/diambil menggunakan MongoDB.
- Appender log log4j disediakan untuk integrasi mongodb.
- Integrasi geospasial tersedia untuk bekerja dengan data geospasial.
Pertanyaan:
- T1: Fitur apa yang didukung MongoDB untuk Java?
- T2: Bagaimana kita bisa mengonfigurasi mongoDB di musim semi?
- T3: Untuk apa kelas Mongotemplate digunakan?
- T4: Bagaimana Pengecualian Pegangan Musim Semi dalam Operasi MongoDB?
- T5: Apakah integrasi MongoDB dengan pemetaan objek dukungan musim semi?
- T6: Dapatkah MongoDB mendukung format metadata lainnya?
- T7: Apakah MongoDB mendukung kegiatan dan pemetaan acara siklus hidup?
- T8: Apa keuntungan menggunakan kueri, kriteria, dan perbarui DSL berbasis Java di MongoDB?
- Q9: Dapat Spring secara otomatis mengimplementasikan metode pencari khusus di antarmuka repositori?
- T10: Apa manfaat integrasi QueryDSL di MongoDB?
- Q11: Dapatkah MongoDB digunakan untuk kegigihan lintas toko?
- Q12: Apakah MongoDB menyediakan Appender Log Log4J?
- Q13: Apakah MongoDB mendukung data geospasial?
A1: Dukungan MongoDB untuk Java mencakup berbagai fitur, seperti dukungan konfigurasi pegas, pemetaan objek, terjemahan pengecualian, dan banyak lagi.
A2: MongoDB dapat dikonfigurasi di musim semi menggunakan kelas @configuration berbasis java atau namespace XML.
A3: Kelas Mongotemplate adalah kelas pembantu yang meningkatkan produktivitas dengan melakukan operasi MongoDB yang umum dan menyediakan pemetaan objek antara dokumen dan pojos.
A4: Spring menerjemahkan pengecualian ke dalam hirarki pengecualian akses data portabel.
A5: Ya, integrasi MongoDB dengan Spring termasuk pemetaan objek yang kaya fitur terintegrasi dengan layanan konversi Spring.
A6: Ya, metadata pemetaan berbasis anotasi di MongoDB dapat diperluas untuk mendukung format metadata lainnya.
A7: Ya, MongoDB mendukung kegiatan dan pemetaan acara siklus hidup.
A8: Kueri, kriteria, dan perbarui DSL yang berbasis Java memberikan cara yang lebih aman dan nyaman untuk membangun kueri dan memperbarui operasi di MongoDB.
A9: Ya, Spring dapat secara otomatis menerapkan metode pencari khusus di antarmuka repositori.
A10: Integrasi QueryDSL di MongoDB memungkinkan kueri yang aman jenis.
A11: Ya, MongoDB mendukung persistensi lintas toko, memungkinkan entitas JPA untuk bertahan/diambil menggunakan MongoDB.
A12: Ya, MongoDB menyediakan Appender Log Log4J untuk Integrasi dengan Log4J.
A13: Ya, MongoDB memberikan integrasi untuk bekerja dengan data geospasial.
Mulai
Untuk memulai dengan dukungan Spring MongoDB, Anda akan membutuhkan MongoDB 1.4 atau lebih tinggi dan java se 5 atau lebih tinggi. Disarankan untuk menggunakan rilis produksi terbaru (2.0.X pada tulisan ini).
Ikuti langkah -langkah ini untuk mengatur lingkungan kerja:
- Siapkan server MongoDB yang sedang berjalan. Lihat panduan start cepat MongoDB untuk instruksi tentang cara memulai instance MongoDB.
- Buat Proyek Berbasis Musim Semi di STS (Spring Tool Suite) atau lingkungan pengembangan terintegrasi lainnya (IDE).
- Sertakan Data Musim Semi Ketergantungan MongoDB di POM proyek Anda.File XML:
- Pastikan Anda memiliki versi musim semi yang benar yang ditentukan dalam pom Anda.xml:
- Tambahkan repositori tonggak musim semi ke pom Anda.xml:
- Atur Level Log4J Level untuk men -debug di log4j.File Properti:
- Buat kelas orang sederhana untuk bertahan:
- Buat aplikasi utama untuk dijalankan:
<ketergantungan>
<groupid>org.Springframework.data</groupid>
<Artifactid>Spring-Data-MongoDB</Artifactid>
<Versi: kapan>1.1.0.MELEPASKAN</Versi: kapan>
</ketergantungan>
<properti>
<musim semi.Versi: kapan>3.1.2.MELEPASKAN</musim semi.Versi: kapan>
</properti>
<repositori>
<gudang>
<pengenal>Spring-Milestone</pengenal>
<nama>Repositori tonggak maven musim semi</nama>
<url>http: // repo.Springsource.org/libs-milestone</url>
</gudang>
</repositori>
log4j.kategori.org.Springframework.data.dokumen.MongoDB = debug
log4j.appender.stdout.tata letak.ConversionPattern = %D %5p %40.40c:%4L -%m%n
Paket org.musim semi.Mongodb.contoh;
orang kelas publik {
ID string pribadi;
nama string pribadi;
usia int pribadi;
orang publik (nama string, usia int) {
ini.name = name;
ini.usia = usia;
}
string publik getId () {
Return ID;
}
Public String getName () {
nama pengembalian;
}
publik int getage () {
usia kembali;
}
@Mengesampingkan
Public String ToString () {
kembalikan "orang [id =" + id + ", name =" + name + ", usia =" + usia + "]";
}
}
Paket org.musim semi.Mongodb.contoh;
Impor org statis.Springframework.data.Mongodb.inti.pertanyaan.Kriteria.Di mana;
Impor org.Apache.Commons.logging.Catatan;
Impor org.Apache.Commons.logging.LogFactory;
Impor org.Springframework.data.Mongodb.inti.Mongooperasi;
Impor org.Springframework.data.Mongodb.inti.Mongotemplate;
Impor org.Springframework.data.Mongodb.inti.pertanyaan.Pertanyaan;
Impor com.Mongodb.Mongo;
Kelas Publik Mongoapp {
Log Log Akhir Statis Pribadi = LogFactory.GetLog (Mongoapp.kelas);
public static void main (string [] args) melempar pengecualian {
Mongooperasi Mongoops = Mongotemplate baru (mongo baru (), "database");
Mongoops.masukkan (orang baru ("Joe", 34));
catatan.Info (Mongoops.findOne (kueri baru (di mana ("nama").adalah ("joe")), orang.kelas));
}
}
Memulai dengan MongoDB dan Java – Tutorial Operasi CRUD
Anda dapat mengatur com.Mongodb.Properti writeConcern yang akan digunakan MongoTemplate untuk operasi penulisan jika belum ditentukan melalui driver di tingkat yang lebih tinggi seperti COM.Mongodb.Mongo . Jika properti WriteConcern Mongotemplate tidak akan ditetapkan, itu akan default ke satu set di DB driver MongoDB atau pengaturan pengumpulan.
Apakah MongoDB mendukung Java
Dukungan MongoDB berisi berbagai fitur yang dirangkum di bawah ini.
- Dukungan Konfigurasi Musim Semi Menggunakan Kelas Konfigurasi Berbasis Java atau XML Namespace untuk Instance Driver Mongo dan Set Replika
- Kelas Pembantu Mongotemplate yang Meningkatkan Produktivitas Melakukan Operasi Mongo Umum. Termasuk pemetaan objek terintegrasi antara dokumen dan pojos.
- Terjemahan Pengecualian ke dalam Hirarki Pengecualian Akses Data Portabel Musim Semi
- Fitur Pemetaan Objek Kaya Terpadu dengan Layanan Konversi Spring
- Metadata pemetaan berbasis anotasi tetapi dapat diperpanjang untuk mendukung format metadata lainnya
- Kegigihan dan Memetakan Acara Siklus Hidup
- Kueri, kriteria, dan perbarui DSLS Java
- Implementasi Otomatis dari Antarmuka Repositori Termasuk Dukungan untuk Metode Pencari Kustom.
- Integrasi QueryDSL untuk mendukung kueri yang aman jenis.
- Kegigihan Cross -Store – Dukungan untuk Entitas JPA Dengan Bidang yang Bertahan Tertinggi/Diperoleh Menggunakan MongoDB
- LOG4J LOG APPENDER
- Integrasi Geospasial
Untuk kebanyakan tugas, Anda akan menemukan diri Anda menggunakan mongotemplate atau dukungan repositori yang keduanya memanfaatkan fungsionalitas pemetaan yang kaya. Mongotemplate adalah tempat untuk mencari fungsionalitas seperti penambahan penghitung atau operasi ad-hoc crud. Mongotemplate juga menyediakan metode panggilan balik sehingga mudah bagi Anda untuk mendapatkan artefak API tingkat rendah seperti org.Mongo.DB untuk berkomunikasi langsung dengan MongoDB. Tujuan dengan penamaan konvensi pada berbagai artefak API adalah untuk menyalinnya di driver Java MongoDB pangkalan sehingga Anda dapat dengan mudah memetakan pengetahuan Anda yang ada ke API musim semi.
5.1 Memulai
Dukungan Spring Mongodb membutuhkan MongoDB 1.4 atau lebih tinggi dan java se 5 atau lebih tinggi. Rilis produksi terbaru (2.0.X pada tulisan ini) direkomendasikan. Cara mudah untuk bootstrap pengaturan lingkungan kerja adalah dengan membuat proyek berbasis musim semi di STS.
Pertama, Anda perlu mengatur server MongoDB yang sedang berjalan. Lihat Panduan Mulai Cepat MongoDB untuk penjelasan tentang cara memulai contoh MongoDB. Setelah diinstal mulai MongoDB biasanya masalah mengeksekusi perintah berikut: mongo_home/bin/mongod
Untuk membuat proyek musim semi di STS, buka File -> New -> Spring Template Project -> Proyek Utilitas Musim Semi Sederhana -> Tekan Ya Saat Diminta. Kemudian masukkan proyek dan nama paket seperti org.musim semi.Mongodb.contoh.
Kemudian tambahkan yang berikut ke pom.Bagian Dependensi XML.
org.Springframework.data Spring-Data-MongoDB 1.1.0.MELEPASKAN Juga mengubah versi musim semi di pom.xml menjadi
3.1.2.MELEPASKAN Anda juga perlu menambahkan lokasi repositori tonggak musim semi untuk maven ke pom Anda.xml yang berada pada tingkat elemen Anda yang sama
Spring-Milestone Repositori tonggak maven musim semi http: // repo.Springsource.org/libs-milestone Repositori juga dapat dijelajahi di sini.
Anda mungkin juga ingin mengatur level logging untuk debug untuk melihat beberapa informasi tambahan, edit log4j.file properti untuk dimiliki
log4j.kategori.org.Springframework.data.dokumen.mongoDb = debug log4j.appender.stdout.tata letak.ConversionPattern = %D %5p %40.40c:%4L -%m%n
Buat kelas orang sederhana untuk bertahan
kemasan org.musim semi.Mongodb.contoh; publik kelas Orang < pribadi ID string; pribadi Nama string; pribadi int usia; publik Orang (nama string, int usia) < ini.name = name; ini.usia = usia; > publik String getId () < kembali pengenal; > publik String getName () < kembali nama; > publik int getage () < kembali usia; > @Mengesampingkan publik String tostring () < kembali "Orang [id hl-string"> ", name hl-string"> ", usia hl-string"> "]"; >>
Dan aplikasi utama untuk dijalankan
kemasan org.musim semi.Mongodb.contoh; impor statis org.Springframework.data.Mongodb.inti.pertanyaan.Kriteria.Di mana; impor org.Apache.Commons.logging.Catatan; impor org.Apache.Commons.logging.LogFactory; impor org.Springframework.data.Mongodb.inti.Mongooperasi; impor org.Springframework.data.Mongodb.inti.Mongotemplate; impor org.Springframework.data.Mongodb.inti.pertanyaan.Pertanyaan; impor com.Mongodb.Mongo; publik kelas Mongoapp < pribadi statis terakhir Log log = logfactory.GetLog (Mongoapp.kelas); publik statis ruang kosong main (string [] args) melempar Pengecualian < MongoOperations mongoOps = baru Mongotemplate (baru Mongo (), "Database"); Mongoops.menyisipkan(baru Orang("Joe", 34)); catatan.Info (Mongoops.findone (baru Kueri (di mana ("nama").adalah("Joe")), Orang.kelas)); Mongoops.dropcollection ("orang"); >>
Ini akan menghasilkan output berikut
10: 01: 32.062 Debug Apping.MongopersistEntityIndExcreator: 80 - Menganalisis Kelas Kelas Org.musim semi.contoh.Orang untuk informasi indeks. 10: 01: 32.265 Debug Ramework.data.Mongodb.inti.Mongotemplate: 631 - Masukkan DBObject yang berisi bidang: [_class, usia, nama] Dalam Koleksi: Orang 10: 01: 32.765 Debug Ramework.data.Mongodb.inti.Mongotemplate: 1243 - FindOne menggunakan kueri: < "name" : "Joe">di db.Koleksi: Database.Orang 10: 01: 32.953 Info Org.musim semi.Mongodb.contoh.Mongoapp: 25 - orang [id = 4ddbba3c0be56b7e1b210166, name = joe, usia = 34] 10: 01: 32.984 debug ramework.data.Mongodb.inti.MongoTemplate: 375 - Koleksi yang Dibatalkan [Database.orang]
Bahkan dalam contoh sederhana ini, ada beberapa hal yang perlu diperhatikan
- Anda dapat membuat kelas pembantu pusat musim semi mongo, mongotemplate, menggunakan com standar.Mongodb.Objek Mongo dan nama database untuk digunakan.
- Mapper bekerja terhadap objek pojo standar tanpa perlu metadata tambahan (meskipun Anda dapat secara opsional memberikan informasi itu. Lihat disini.).
- Konvensi digunakan untuk menangani bidang ID, mengubahnya menjadi objek saat disimpan dalam database.
- Konvensi pemetaan dapat menggunakan akses lapangan. Perhatikan bahwa kelas orang hanya memiliki getters.
- Jika nama argumen konstruktor cocok dengan nama lapangan dari dokumen yang disimpan, mereka akan digunakan untuk membuat instansi objek
5.2 Contoh Repositori
Ada repositori gitub dengan beberapa contoh yang dapat Anda unduh dan mainkan untuk merasakan cara kerja perpustakaan.
5.3 Menghubungkan ke MongoDB dengan Musim Semi
Salah satu tugas pertama saat menggunakan MongoDB dan Spring adalah membuat com.Mongodb.Objek Mongo Menggunakan Wadah IOC. Ada dua cara utama untuk melakukan ini, baik menggunakan metadata kacang berbasis java atau metadata kacang berbasis XML. Ini dibahas di bagian berikut.
Bagi mereka yang tidak terbiasa dengan cara mengkonfigurasi wadah pegas menggunakan metadata kacang berbasis java alih -alih metadata berbasis XML lihat pengenalan tingkat tinggi dalam dokumen referensi di sini serta dokumentasi terperinci di sini.
5.3.1 Mendaftarkan contoh Mongo menggunakan metadata berbasis Java
Contoh menggunakan metadata kacang berbasis java untuk mendaftarkan contoh com.Mongodb.Mongo ditampilkan di bawah
Contoh 5.1. Mendaftarkan com.Mongodb.Objek Mongo Menggunakan Metadata Kacang Berbasis Java
@Konfigurasi publik kelas AppConfig < / * * Gunakan API driver mongo standar untuk membuat com.Mongodb.Instance Mongo. */ publik @Kacang Mongo Mongo () melempar UnknownHostException < kembali baru Mongo ("Localhost"); >>
Pendekatan ini memungkinkan Anda menggunakan com standar.Mongodb.Mongo API yang mungkin sudah Anda gunakan tetapi juga mencemari kode dengan pengecualian yang tidak diketahui. Penggunaan pengecualian yang diperiksa tidak diinginkan karena metadata kacang berbasis Java menggunakan metode sebagai sarana untuk mengatur dependensi objek, membuat kode panggilan berantakan.
Alternatifnya adalah mendaftarkan contoh com.Mongodb.Instance Mongo dengan wadah menggunakan Mongofactorybean Spring . Dibandingkan dengan instantiasi com.Mongodb.Instance Mongo Secara langsung, pendekatan pabrik tidak melempar pengecualian yang diperiksa dan memiliki keuntungan tambahan dari juga memberikan wadah dengan implementasi pengecualian translator yang menerjemahkan pengecualian MongoDB untuk pengecualian dalam anotasi data portabel musim semi untuk kelas akses data yang dianentasikan dengan anotasi @Repositori @Repositori @Repositori @Repositori @Repository Spring dari Spring. Hirarki dan penggunaan @Repository ini dijelaskan dalam fitur dukungan DAO Spring.
Contoh metadata kacang berbasis Java yang mendukung terjemahan pengecualian pada kelas anotasi @Repository ditunjukkan di bawah ini:
Contoh 5.2. Mendaftarkan com.Mongodb.Objek Mongo Menggunakan Mongofactorybean Spring dan Mengaktifkan Dukungan Terjemahan Pengecualian Musim Semi
@Konfigurasi publik kelas AppConfig < / * * Kacang pabrik yang menciptakan com.Mongodb.Instance Mongo */ publik @Kacang Mongofactorybean Mongo () < MongoFactoryBean mongo = baru MongofactoryBean (); Mongo.Sethost ("Localhost"); kembali Mongo; >>
Untuk mengakses com.Mongodb.Objek Mongo Dibuat oleh MongofactoryBean di @configuration lain atau kelas Anda sendiri, gunakan “private @Autowired Mongo Mongo;” Field.
5.3.2 Mendaftarkan instance Mongo Menggunakan metadata berbasis XML
Meskipun Anda dapat menggunakan namespace xml tradisional musim semi untuk mendaftarkan instance com.Mongodb.Mongo dengan wadah, XML bisa sangat bertele -tele karena tujuan umum. XML Namespaces adalah alternatif yang lebih baik untuk mengonfigurasi objek yang umum digunakan seperti instance Mongo. The Mongo Namespace masuk Anda untuk membuat lokasi server instance Mongo, Replica-set, dan opsi.
Untuk menggunakan elemen namespace Mongo, Anda perlu merujuk pada skema Mongo:
Contoh 5.3. Skema XML untuk mengonfigurasi MongoDB
xmlns="http: // www.Springframework.org/skema/kacang " xmlns: xsi="http: // www.W3.org/2001/xmlschema-instance " xmlns: Konteks="http: // www.Springframework.org/skema/konteks " xmlns: Mongo="http: // www.Springframework.org/skema/data/mongo " XSI: Skema= "http: // www.Springframework.org/skema/konteks http: // www.Springframework.org/skema/konteks/spring-context-3.0.xsd http: // www.Springframework.org/skema/data/mongo http: // www.Springframework.org/skema/data/mongo/spring-mongo-1.0.xsd http: // www.Springframework.org/skema/kacang http: // www.Springframework.org/schema/beans/spring-beans-3.0.xsd "> Konfigurasi yang lebih canggih dengan mongooptions ditunjukkan di bawah ini (perhatikan ini bukan nilai yang disarankan)
Contoh 5.4. Skema XML untuk mengkonfigurasi com.Mongodb.Objek Mongo dengan Mongooptions
tuan rumah="Localhost" pelabuhan="27017"> koneksi-per-host="8" Thread-well-to-block-for-connection-multiplier="4" Connect-Timeout="1000" Max-wait-Time="1500>" Auto-Connect-Retry="BENAR" soket-keepan="BENAR" soket-timeout="1500" Slave-OK="BENAR" Nomor tulis="1" waktu tulis="0" Tulis-fync="BENAR"/> Konfigurasi menggunakan set replika ditunjukkan di bawah ini.
Contoh 5.5. Skema XML untuk mengonfigurasi com.Mongodb.Objek Mongo dengan set replika
pengenal="ReplicasetMongo" replika-set="127.0.0.1: 27017, Localhost: 27018 "/> 5.3.3 Antarmuka MongoDBFactory
Sementara com.Mongodb.Mongo adalah titik masuk ke API driver MongoDB, menghubungkan ke instance database MongoDB tertentu memerlukan informasi tambahan seperti nama database dan nama pengguna dan kata sandi opsional. Dengan informasi itu, Anda bisa mendapatkan com.Mongodb.Objek DB dan akses semua fungsionalitas instance database MongoDB tertentu. Musim semi menyediakan org.Springframework.data.Mongodb.inti.Antarmuka MongoDBFactory ditunjukkan di bawah ini ke konektivitas bootstrap ke database.
publik antarmuka MongoDBFactory < DB getDb() melempar DataAccessException; DB getDB (string dbName) melempar DataAccessException; >
Bagian berikut menunjukkan bagaimana Anda dapat menggunakan contiainer dengan java atau metadata berbasis XML untuk mengonfigurasi instance antarmuka mongodbfactory. Pada gilirannya, Anda dapat menggunakan instance MongoDBFactory untuk mengonfigurasi mongotemplate.
Org kelas.Springframework.data.Mongodb.inti.SimpleMongoDBFactory menyediakan implement antarmuka MongoDBFactory dan dibuat dengan com standar.Mongodb.Contoh mongo, nama database dan org opsional.Springframework.data.autentikasi.Argumen konstruktor usercredentials.
Alih -alih menggunakan wadah IOC untuk membuat instance mongotemplate, Anda bisa menggunakannya dalam kode Java standar seperti yang ditunjukkan di bawah ini.
publik kelas Mongoapp < pribadi statis terakhir Log log = logfactory.GetLog (Mongoapp.kelas); publik statis ruang kosong main (string [] args) melempar Pengecualian < MongoOperations mongoOps = baru Mongotemplate (SimpleMongoDBFactory baru (mongo baru (), "database")); Mongoops.menyisipkan(baru Orang("Joe", 34)); catatan.Info (Mongoops.findone (baru Kueri (di mana ("nama").adalah("Joe")), Orang.kelas)); Mongoops.dropcollection ("orang"); >>
Kode dalam tebal menyoroti penggunaan SimpleMongoDBFactory dan merupakan satu -satunya perbedaan antara daftar yang ditunjukkan di bagian Memulai.
5.3.4 Mendaftarkan contoh MongoDBFactory menggunakan metadata berbasis java
Untuk mendaftarkan instance MongoDBFactory dengan wadah, Anda menulis kode seperti apa yang disorot dalam daftar kode sebelumnya. Contoh sederhana ditunjukkan di bawah ini
@Konfigurasi publik kelas Konfigurasi mongoc < publik @Kacang MongoDBFactory MongoDBFactory () melempar Pengecualian < kembali baru SimpleMongoDBFactory (baru Mongo (), "Database"); >>
Untuk mendefinisikan nama pengguna dan kata sandi, buat instance org.Springframework.data.autentikasi.UserCredentials dan masukkan ke dalam konstruktor seperti yang ditunjukkan di bawah ini. Daftar ini juga ditampilkan menggunakan MongoDBFactory Register, contoh mongotemplate dengan wadah.
@Konfigurasi publik kelas Konfigurasi mongoc < publik @Kacang MongoDBFactory MongoDBFactory () melempar Pengecualian < UserCredentials userCredentials = baru UserCredentials ("Joe", "rahasia"); kembali baru SimpleMongoDBFactory (baru Mongo (), "Database", UserCredentials); > publik @Kacang Mongotemplate mongotemplate () melempar Pengecualian < kembali baru Mongotemplate (MongoDBFactory ()); >>
5.3.5 Mendaftarkan Instance MongoDBFactory Menggunakan Metadata Berbasis XML
The Mongo Namespace menyediakan cara yang nyaman untuk membuat SimpleMongoDbFactory dibandingkan dengan menggunakan namespace. Penggunaan sederhana ditunjukkan di bawah ini
dbname="Database"> Dalam contoh di atas sebuah com.Mongodb.Instance Mongo dibuat menggunakan host default dan nomor port. SimpleMongoDBFactory terdaftar dengan wadah diidentifikasi oleh ID ‘MongoDBFactory’ kecuali nilai untuk atribut ID ditentukan.
Anda juga dapat menyediakan host dan port untuk com yang mendasarinya.Mongodb.Contoh mongo seperti yang ditunjukkan di bawah ini, selain nama pengguna dan kata sandi untuk database.
pengenal="lain mongoDbfactory" tuan rumah="Localhost" pelabuhan="27017" dbname="Database" nama belakang="Joe" kata sandi="rahasia"/> Jika Anda perlu mengonfigurasi opsi tambahan di com.Mongodb.Instance Mongo yang digunakan untuk membuat SimpleMongoDBFactory Anda dapat merujuk pada kacang yang ada menggunakan atribut Mongo-Ref seperti yang ditunjukkan di bawah ini. Untuk menunjukkan pola penggunaan umum lainnya, daftar ini menunjukkan penggunaan placeholder properti untuk parameter konfigurasi dan membuat mongotemplate .
Lokasi="ClassPath:/com/myapp/mongodb/config/mongo.properti "/> tuan rumah="$" pelabuhan="$"> koneksi-per-host="$" Thread-well-to-block-for-connection-multiplier="$" Connect-Timeout="$" Max-wait-Time="$" Auto-Connect-Retry="$" soket-keepan="$" soket-timeout="$" Slave-OK="$" Nomor tulis="1" waktu tulis="0" Tulis-fync="BENAR"/> dbname="Database" Mongo-Ref="Mongo"/> pengenal="lain mongotemplate" kelas="Org.Springframework.data.Mongodb.inti.Mongotemplate "> nama="MongoDBFactory" Ref="MongoDBFactory"/> 5.4 Pengantar Mongotemplate
Kelas mongotemplate, terletak di paket org.Springframework.data.dokumen.MongoDB, adalah kelas pusat dari MongoDB Support Providng Fitur yang kaya untuk berinteraksi dengan database. Templat ini menawarkan operasi kenyamanan untuk membuat, memperbarui, menghapus, dan meminta dokumen MongoDB dan menyediakan pemetaan antara objek domain Anda dan dokumen MongoDB Anda.
Setelah dikonfigurasi, MongoTemplate aman-utas dan dapat digunakan kembali di beberapa contoh.
Pemetaan antara dokumen MongoDB dan kelas domain dilakukan dengan mendelegasikan ke implementasi antarmuka Mongoconverter . Spring menyediakan dua implementasi, SimpleMappingConverter dan MongomappingConverter, tetapi Anda juga dapat menulis konverter Anda sendiri. Silakan merujuk ke bagian Mongocoverters untuk informasi lebih rinci.
Kelas Mongotemplate mengimplementasikan antarmuka mongooperation . Sebanyak mungkin, metode pada mongooperation dinamai sesuai dengan metode yang tersedia pada objek pengumpulan driver MongoDB untuk membuat API familier bagi pengembang MongoDB yang ada yang terbiasa dengan API driver API. Misalnya, Anda akan menemukan metode seperti “find”, “findAndmodify”, “findOne”, “inert”, “rampai”, “save”, “update” dan “updateMulti”. Tujuan desainnya adalah untuk membuatnya semudah mungkin untuk beralih antara penggunaan driver mongodb base dan mongooperasi . Perbedaan utama di antara kedua API adalah bahwa mongoperasi dapat dilewati objek domain alih -alih DBObject dan ada API yang fasih untuk kueri, kriteria, dan pembaruan operasi alih -alih mengisi DBObject untuk menentukan parameter untuk operasi tersebut Operatiosn tersebut tersebut.
Cara yang disukai untuk merujuk operasi pada instance Mongotemplate adalah melalui antarmuka Mongooperations .
Implementasi konverter default yang digunakan oleh Mongotemplate adalah MongomappingConverter. Sedangkan MongomappingConverter dapat menggunakan metadata tambahan untuk menentukan pemetaan objek ke dokumen yang juga mampu mengonversi objek yang tidak mengandung metadata additonal dengan menggunakan beberapa konvensi untuk pemetaan ID dan nama koleksi dan koleksi. Konvensi ini serta penggunaan anotasi pemetaan dijelaskan dalam bab pemetaan.
Dalam rilis M2 SimpleMappingConverter, adalah default dan kelas ini sekarang sudah usang karena fungsinya telah dimasukkan oleh MongomappingConverter.
Fitur sentral lain dari Mongotemplate adalah terjemahan pengecualian pengecualian yang dilemparkan ke dalam driver MongoDB Java ke dalam Hierarki Pengecualian Akses Data Portabel Musim Semi. Lihat bagian terjemahan pengecualian untuk informasi lebih lanjut.
Meskipun ada banyak metode kenyamanan di mongotemplate untuk membantu Anda dengan mudah melakukan tugas -tugas umum jika Anda perlu mengakses API driver MongoDB secara langsung untuk mengakses fungsionalitas yang tidak diekspos secara eksplisit oleh Mongotemplate Anda dapat menggunakan salah satu dari beberapa metode panggilan balik untuk mengakses API driver yang mendasarinya di API yang mendasari driver yang mendasari API yang mendasari driver yang mendasari API yang mendasarinya. Callback Execute akan memberi Anda referensi ke salah satu com.Mongodb.Koleksi atau com.Mongodb.Objek db. Silakan lihat bagian panggilan balik eksekusi bagian untuk informasi lebih lanjut.
Sekarang mari kita lihat contoh cara bekerja dengan mongotemplate dalam konteks wadah musim semi.
5.4. Instantiating Mongotemplate
Anda dapat menggunakan java untuk membuat dan mendaftarkan instance mongotemplate seperti yang ditunjukkan di bawah ini.
Contoh 5.6. Mendaftarkan com.Mongodb.Objek Mongo dan Dukungan Terjemahan Pengecualian Musim Semi
@Konfigurasi publik kelas AppConfig < publik @Kacang Mongo Mongo () melempar Pengecualian < kembali baru Mongo ("Localhost"); > publik @Kacang Mongotemplate mongotemplate () melempar Pengecualian < kembali baru Mongotemplate (Mongo (), "mydatabase"); >>
Ada beberapa konstruktor mongotemplate yang kelebihan beban. Ini
- Mongotemplate (Mongo Mongo, String DatabaseName) – mengambil com.Mongodb.Objek Mongo dan nama basis data default untuk beroperasi.
- Mongotemplate (Mongo Mongo, String DatabaseName, UserCredentials UserCredentials) – Menambahkan nama pengguna dan kata sandi untuk mengautentikasi dengan database.
- Mongotemplate (MongoDBFactory MongoDBFactory) – Mengambil objek MongoDBFactory yang merangkum com.Mongodb.Objek Mongo, Nama Basis Data, dan Nama Pengguna dan Kata Sandi.
- Mongotemplate (MongoDBFactory MongoDBFactory, Mongoconverter Mongoconverter) – Menambahkan Mongoconverter untuk digunakan untuk pemetaan.
Anda juga dapat mengonfigurasi mongotemplate menggunakan skema XML Spring.
"Localhost" port ="27017"/>"Mongotemplate" kelas="Org.Springframework.data.Mongodb.inti.Mongotemplate "> "Mongo"/> "nama data" nilai ="Geospasial"/>
Properti opsional lain yang mungkin ingin Anda tetapkan saat membuat mongotemplate adalah writesultCheckingpolicy, writeconcern, dan readpreference default .
Cara yang disukai untuk merujuk operasi pada instance Mongotemplate adalah melalui antarmuka Mongooperations .
Kebijakan Pemeriksaan Penulisan
Saat dalam pengembangan, sangat berguna untuk log atau melempar pengecualian jika com.Mongodb.Penulis yang dikembalikan dari operasi MongoDB apa pun yang mengandung kesalahan. Sangat umum untuk lupa melakukan ini selama pengembangan dan kemudian berakhir dengan aplikasi yang sepertinya berjalan dengan sukses tetapi pada kenyataannya basis data tidak dimodifikasi sesuai dengan harapan Anda. Atur properti WriterSult ChechCecking dari MongoTemplate ke enum dengan nilai -nilai, log, pengecualian, atau tidak ada berikut untuk mencatat kesalahan, melempar dan pengecualian atau tidak melakukan apa -apa. Standarnya adalah menggunakan nilai chechesult chechecking dari tidak ada.
WriteConcern
Anda dapat mengatur com.Mongodb.Properti writeConcern yang akan digunakan MongoTemplate untuk operasi penulisan jika belum ditentukan melalui driver di tingkat yang lebih tinggi seperti COM.Mongodb.Mongo . Jika properti WriteConcern Mongotemplate tidak akan ditetapkan, itu akan default ke satu set di DB driver MongoDB atau pengaturan pengumpulan.
WriteConcernResolver
Untuk kasus yang lebih lanjut di mana Anda ingin menetapkan nilai WriteConcern yang berbeda berdasarkan per-operasi (untuk menghapus, memperbarui, memasukkan dan menyimpan operasi), antarmuka strategi yang disebut WriteConcernResolver dapat dikonfigurasi di MongoTemplate . Karena MongoTemplate digunakan untuk bertahan Pojos, WriteConcernResolver memungkinkan Anda membuat kebijakan yang dapat memetakan kelas pojo tertentu ke nilai writeconcern. Antarmuka WriteConcernResolver ditunjukkan di bawah ini.
publik antarmuka WriteConcernResolver
Argumen yang disahkan, Mongoaction, adalah apa yang Anda gunakan untuk menentukan nilai writeconcern yang akan digunakan atau menggunakan nilai templat itu sendiri sebagai default. Mongoaction berisi nama koleksi yang ditulis, java.Lang.Kelas pojo, dbObject yang dikonversi, serta operasi sebagai enumerasi (mongoactionoperation: hapus, perbarui, masukkan, masukkan_list, simpan) dan beberapa bagian informasi kontekstual lainnya. Misalnya,
kelas pribadi myappwriteconcernresolver mengimplementasikan writeConcernresolver < public WriteConcern resolve(MongoAction action) < if (action.getEntityClass().getSimpleName().contains("Audit")) < return WriteConcern.NONE; >lain jika (tindakan.getentityclass ().getsImplename ().berisi ("metadata")) < return WriteConcern.JOURNAL_SAFE; >tindakan kembali.getDefaultWriteConcern (); >> 5.5 menyimpan, memperbarui, dan menghapus dokumen
MongoTemplate menyediakan cara sederhana bagi Anda untuk menyimpan, memperbarui, dan menghapus objek domain Anda dan memetakan objek tersebut ke dokumen yang disimpan di MongoDB.
Diberi kelas sederhana seperti orang
publik kelas Orang < pribadi ID string; pribadi Nama string; pribadi int usia; publik Orang (nama string, int usia) < ini.name = name; ini.usia = usia; > publik String getId () < kembali pengenal; > publik String getName () < kembali nama; > publik int getage () < kembali usia; > @Mengesampingkan publik String tostring () < kembali "Orang [id hl-string"> ", name hl-string"> ", usia hl-string"> "]"; >>
Anda dapat menyimpan, memperbarui, dan menghapus objek seperti yang ditunjukkan di bawah ini.
Mongooperasi adalah antarmuka yang diterapkan oleh Mongotemplate.
kemasan org.musim semi.contoh; impor statis org.Springframework.data.Mongodb.inti.pertanyaan.Kriteria.Di mana; impor statis org.Springframework.data.Mongodb.inti.pertanyaan.Memperbarui.memperbarui; impor statis org.Springframework.data.Mongodb.inti.pertanyaan.Pertanyaan.pertanyaan; impor Jawa.util.Daftar; impor org.Apache.Commons.logging.Catatan; impor org.Apache.Commons.logging.LogFactory; impor org.Springframework.data.Mongodb.inti.Mongooperasi; impor org.Springframework.data.Mongodb.inti.Mongotemplate; impor org.Springframework.data.Mongodb.inti.SimpleMongoDBFactory; impor com.Mongodb.Mongo; publik kelas Mongoapp < pribadi statis terakhir Log log = logfactory.GetLog (Mongoapp.kelas); publik statis ruang kosong main (string [] args) melempar Pengecualian < MongoOperations mongoOps = baru Mongotemplate (baru SimpleMongoDBFactory (baru Mongo (), "Database")); Orang p = baru Orang("Joe", 34); // Sisipkan digunakan untuk awalnya menyimpan objek ke dalam database. Mongoops.masukkan (p); catatan.info ("Menyisipkan: " + P); // Menemukan P = Mongoops.FindById (hlm.getid (), orang.kelas); catatan.info ("Ditemukan: " + P); // Memperbarui Mongoops.updateFirst (kueri (di mana ("nama").adalah("Joe")), memperbarui("usia", 35), Orang.kelas); P = Mongoops.findOne (kueri (di mana ("nama").adalah("Joe")), Orang.kelas); catatan.info ("Diperbarui:" + P); // Menghapus Mongoops.hapus (p); // Periksa bahwa penghapusan berhasil Daftar orang = Mongoops.FindAll (orang.kelas); catatan.info ("Jumlah orang =:" + rakyat.ukuran()); Mongoops.dropcollection (orang.kelas); >>
Ini akan menghasilkan output log berikut (termasuk pesan debug dari mongotemplate itu sendiri)
Debug apping.MongopersistEntityIndExcreator: 80 - Menganalisis Kelas Kelas Org.musim semi.contoh.Orang untuk informasi indeks. Pekerjaan debug.data.Mongodb.inti.MongoTemplate: 632 - Masukkan DBObject yang berisi bidang: [_class, usia, nama] Dalam Koleksi: Person Info Org.musim semi.contoh.MongoApp: 30 - Masukkan: Orang [id = 4ddc6e784ce5b1eba3ceaf5c, name = joe, usia = 34] pekerjaan debug.data.Mongodb.inti.Mongotemplate: 1246 - FindOne menggunakan kueri: < "_id" : < "$oid" : "4ddc6e784ce5b1eba3ceaf5c">> di db.Koleksi: Database.Info orang org.musim semi.contoh.MongoApp: 34 - Ditemukan: Orang [id = 4ddc6e784ce5b1eba3leaf5c, name = joe, usia = 34] pekerjaan debug.data.Mongodb.inti.MongoTemplate: 778 - Panggilan Pembaruan Menggunakan Kueri: < "name" : "Joe">dan perbarui: < "$set" : < "age" : 35>> dalam koleksi: pekerjaan debug orang.data.Mongodb.inti.Mongotemplate: 1246 - FindOne menggunakan kueri: < "name" : "Joe">di db.Koleksi: Database.Info orang org.musim semi.contoh.MongoApp: 39 - Diperbarui: Orang [id = 4ddc6e784ce5b1eba3ceaf5c, name = joe, usia = 35] pekerjaan debug.data.Mongodb.inti.MongoTemplate: 823 - Hapus menggunakan kueri: < "id" : "4ddc6e784ce5b1eba3ceaf5c">dalam koleksi: info orang org.musim semi.contoh.Mongoapp: 46 - Jumlah orang =: 0 Pekerjaan Debug.data.Mongodb.inti.MongoTemplate: 376 - Koleksi yang Dibatalkan [Database.orang]
Ada konversi implisit menggunakan mongoconverter antara string dan objectId sebagaimana disimpan dalam database dan mengenali konvensi nama “id” properti.
Contoh ini dimaksudkan untuk menunjukkan penggunaan simpan, perbarui, dan hapus operasi pada mongotemplate dan tidak menunjukkan fungsionalitas pemetaan yang kompleks
Stynax kueri yang digunakan dalam contoh dijelaskan secara lebih rinci di bagian ini dokumen permintaan.
5.5.1 Bagaimana bidang ‘_id’ ditangani di lapisan pemetaan
MongoDB mengharuskan Anda memiliki bidang ‘_id’ untuk semua dokumen. Jika Anda tidak memberikan satu driver akan menetapkan ObjectId dengan nilai yang dihasilkan. Saat menggunakan MongomappingConverter ada aturan tertentu yang mengatur bagaimana properti dari kelas Java dipetakan ke bidang ‘_id’ ini.
Berikut ini menguraikan properti apa yang akan dipetakan ke bidang dokumen ‘_id’:
- Properti atau lapangan dijelaskan dengan @ID (org.Springframework.data.anotasi.Id) akan dipetakan ke bidang ‘_id’.
- Properti atau bidang tanpa anotasi tetapi ID bernama akan dipetakan ke bidang ‘_id’.
Berikut ini menguraikan konversi jenis apa, jika ada, akan dilakukan pada properti yang dipetakan ke bidang dokumen _id saat menggunakan MappingMongoConverter, default untuk MongoTemplate .
- Properti atau bidang ID yang dinyatakan sebagai string di kelas Java akan dikonversi ke dan disimpan sebagai objek jika memungkinkan menggunakan konverter pegas . Aturan konversi yang valid didelegasikan ke driver java mongodb. Jika tidak dapat dikonversi ke ObjectId, maka nilainya akan disimpan sebagai string dalam database.
- Properti atau bidang ID yang dinyatakan sebagai BigInteger di kelas Java akan dikonversi dan disimpan sebagai ObjectID menggunakan konverter pegas .
Jika tidak ada bidang atau properti yang ditentukan di atas yang ada di kelas Java maka file ‘_id’ implisit akan dihasilkan oleh driver tetapi tidak dipetakan ke properti atau bidang kelas Java.
Saat menanyakan dan memperbarui mongotemplate akan menggunakan konverter untuk menangani konversi kueri dan memperbarui objek yang sesuai dengan aturan di atas untuk menyimpan dokumen sehingga nama dan jenis bidang yang digunakan dalam kueri Anda akan dapat mencocokkan apa yang ada di kelas domain Anda.
5.5.2 jenis pemetaan
Karena koleksi MongoDB dapat berisi dokumen yang mewakili contoh dari berbagai jenis. Contoh yang bagus di sini adalah jika Anda menyimpan hierarki kelas atau hanya memiliki kelas dengan properti objek tipe . Dalam kasus terakhir, nilai -nilai yang dimiliki di dalam properti itu harus dibaca dengan benar saat mengambil objek. Dengan demikian kita membutuhkan mekanisme untuk menyimpan informasi jenis di samping dokumen yang sebenarnya.
Untuk mencapai hal itu, MappingMongoConverter menggunakan abstraksi mongotypeMapper dengan defaultMongotypeMapper karena implementasi utamanya. Perilaku default ini menyimpan nama classname yang sepenuhnya memenuhi syarat di bawah _class di dalam dokumen untuk dokumen tingkat atas serta untuk setiap nilai jika itu adalah jenis yang kompleks dan subtipe jenis properti yang dinyatakan.
Contoh 5.7. Ketik pemetaan
publik kelas Sampel < Contact value; >publik abstrak kelas Kontak < … >publik kelas Orang meluas Kontak < … >Sampel sampel = baru Sampel(); Sampel.nilai = baru Orang(); Mongotemplate.Simpan (sampel); < "_kelas" : "Com.puncak.Sampel", "nilai" : < "_kelas" : "Com.puncak.Orang" >>
Seperti yang Anda lihat, kami menyimpan informasi jenis untuk kelas root aktual persistet serta untuk tipe bersarang karena kompleks dan subtipe kontak . Jadi jika Anda sekarang menggunakan MongoTemplate.FindAll (objek.kelas, “sampel”) Kami dapat mengetahui bahwa dokumen yang disimpan harus menjadi contoh contoh. Kami juga dapat mengetahui bahwa properti nilai sebenarnya adalah seseorang.
Menyesuaikan pemetaan jenis
Jika Anda ingin menghindari menulis seluruh nama kelas Java sebagai informasi jenis tetapi lebih suka menggunakan beberapa kunci, Anda dapat menggunakan anotasi @typealias di kelas entitas yang bertahan. Jika Anda perlu menyesuaikan pemetaan lebih banyak lagi, lihat antarmuka TypeInformMapper. Sebuah instance dari antarmuka itu dapat dikonfigurasi di DefaultMongotypeMapper yang dapat dikonfigurasi secara bergantian pada MappingMongoConverter .
5.5.3 Metode untuk menyimpan dan memasukkan dokumen
Ada beberapa metode yang nyaman di mongotemplate untuk menyimpan dan memasukkan objek Anda. Untuk memiliki kontrol berbutir lebih baik atas proses konversi, Anda dapat mendaftarkan konverter musim semi dengan MappingMongoConverter, misalnya Converter and Converter .
Perbedaan antara operasi insert dan save adalah bahwa operasi simpan akan melakukan insert jika objek belum ada.
Kasus sederhana menggunakan operasi simpan adalah menyimpan pojo. Dalam hal ini nama koleksi akan ditentukan oleh nama (tidak sepenuhnya berkualitas) dari kelas. Anda juga dapat menghubungi operasi simpan dengan nama koleksi tertentu. Koleksi untuk menyimpan objek dapat ditimpa menggunakan pemetaan metadata.
Saat memasukkan atau menghemat, jika properti ID tidak diatur, asumsinya adalah bahwa nilainya akan di -autogenerasi oleh database. Dengan demikian, untuk autogenerasi ObjectID untuk menggantikan jenis properti ID/bidang di kelas Anda harus berupa string, objectId, atau biginteger .
Berikut adalah contoh dasar menggunakan operasi simpan dan mengambil isinya.
Contoh 5.8. Memasukkan dan mengambil dokumen menggunakan mongotemplate
impor statis org.Springframework.data.Mongodb.inti.pertanyaan.Kriteria.Di mana; impor statis org.Springframework.data.Mongodb.inti.pertanyaan.Kriteria.pertanyaan; … Orang P = baru Orang("Bob", 33); Mongotemplate.masukkan (p); Orang qp = mongotemplate.findOne (kueri (di mana ("usia").adalah(33)), Orang.kelas);
Operasi Sisipkan/Simpan yang tersedia untuk Anda tercantum di bawah ini.
- ruang kosong menyimpan (Object ObjectToSave) Simpan objek ke koleksi default.
- ruang kosong menyimpan (Object ObjectToSave, String CollectionName) Simpan objek ke koleksi yang ditentukan.
Kumpulan operasi sisipan serupa tercantum di bawah ini
- ruang kosong menyisipkan (Object ObjectToSave) Masukkan objek ke koleksi default.
- ruang kosong menyisipkan (Object ObjectToSave, String CollectionName) Masukkan objek ke koleksi yang ditentukan.
Koleksi mana yang akan disimpan dokumen saya?
Ada dua cara untuk mengelola nama koleksi yang digunakan untuk beroperasi pada dokumen. Nama koleksi default yang digunakan adalah nama kelas yang diubah untuk dimulai dengan huruf kecil. Jadi com.tes.Kelas orang akan disimpan dalam koleksi “orang”. Anda dapat menyesuaikan ini dengan memberikan nama koleksi yang berbeda menggunakan anotasi @Document. Anda juga dapat mengganti nama koleksi dengan memberikan nama koleksi Anda sendiri sebagai parameter terakhir untuk panggilan metode mongotemplate yang dipilih.
Memasukkan atau menyimpan objek individu
Driver MongoDB mendukung memasukkan koleksi dokumen dalam satu operasi. Metode dalam antarmuka Mongooperasi yang mendukung fungsionalitas ini tercantum di bawah ini
- menyisipkan Masukkan objek. Jika ada dokumen yang ada dengan ID yang sama maka kesalahan dihasilkan.
- InsertAll Mengambil kumpulan objek sebagai parameter pertama. Metode ini mengambang setiap objek dan memasukkannya ke koleksi yang sesuai berdasarkan aturan yang ditentukan di atas.
- menyimpan Simpan objek yang mengumumkan objek apa pun yang mungkin ada dengan ID yang sama.
Memasukkan beberapa objek dalam batch
Driver MongoDB mendukung memasukkan koleksi dokumen dalam satu operasi. Metode dalam antarmuka Mongooperasi yang mendukung fungsionalitas ini tercantum di bawah ini
- menyisipkan metode yang mengambil koleksi sebagai argumen pertama. Ini menyisipkan daftar objek dalam satu batch menulis ke database.
5.5.4 Memperbarui dokumen dalam koleksi
Untuk pembaruan, kami dapat memilih untuk memperbarui dokumen pertama yang ditemukan menggunakan metode Mongooperation UpdateFirst atau kami dapat memperbarui semua dokumen yang ditemukan sesuai dengan kueri menggunakan Metode UpdateMulti . Berikut adalah contoh pembaruan semua akun tabungan di mana kami menambahkan satu kali $ 50.00 bonus ke saldo menggunakan operator $ inc.
Contoh 5.9. Memperbarui dokumen menggunakan mongotemplate
impor statis org.Springframework.data.Mongodb.inti.pertanyaan.Kriteria.Di mana; impor statis org.Springframework.data.Mongodb.inti.pertanyaan.Pertanyaan; impor statis org.Springframework.data.Mongodb.inti.pertanyaan.Memperbarui; . Penulis wr = mongotemplate.UpdateMulti (baru Kueri (di mana ("akun.Jenis akun").adalah (akun.Jenis.TABUNGAN)), baru Memperbarui().Inc ("akun.$.keseimbangan", 50.00), Akun.kelas);
Selain kueri yang dibahas di atas, kami memberikan definisi pembaruan menggunakan objek pembaruan. Kelas Pembaruan memiliki metode yang cocok dengan pengubah pembaruan yang tersedia untuk MongoDB.
Karena Anda dapat melihat sebagian besar metode mengembalikan objek pembaruan untuk memberikan gaya yang lancar untuk API.
Metode untuk melaksanakan pembaruan untuk dokumen
- UPDATEFRIRST Memperbarui dokumen pertama yang cocok dengan kriteria dokumen kueri dengan dokumen yang diperbarui yang disediakan.
- UpdateMulti Memperbarui semua objek yang sesuai dengan kriteria dokumen kueri dengan dokumen yang diperbarui yang disediakan.
Memulai dengan MongoDB dan Java – Tutorial Operasi CRUD
MongoDB Java Driver Logging sekarang diaktifkan melalui SLF4J API yang populer jadi saya menambahkan logback di POM.XML dan logback file konfigurasi.xml .
Perkenalan

Dalam posting blog pertama dari seri Java Quick Start ini, saya akan menunjukkan kepada Anda cara mengatur proyek Java Anda dengan Maven dan menjalankan perintah MongoDB di Java. Kemudian kami akan mengeksplorasi operasi yang paling umum – seperti membuat, membaca, memperbarui, dan menghapus – menggunakan driver java mongodb . Saya juga akan menunjukkan kepada Anda beberapa opsi dan fitur yang lebih kuat yang tersedia sebagai bagian dari driver Java MongoDB untuk masing -masing operasi ini, memberi Anda dasar pengetahuan yang sangat hebat untuk dibangun saat kami melewati seri ini.
Di posting blog mendatang, kami akan melanjutkan dan bekerja melalui:
Transaksi asam multi-dokumen.
Driver MongoDB Java Reactive Streams.
Mengapa Mongodb dan Java?
Java adalah bahasa paling populer di industri TI pada tanggal posting blog ini, dan pengembang memilih MongoDB sebagai database yang paling dicari empat tahun berturut -turut . Dalam serangkaian posting blog ini, saya akan menunjukkan betapa kuatnya dua teknologi hebat ini saat digabungkan dan bagaimana Anda dapat mengakses daya itu.
Prasyarat
Untuk mengikuti, Anda dapat menggunakan lingkungan apa pun yang Anda sukai dan lingkungan pengembangan pilihan Anda. Saya akan menggunakan Maven 3.6.2 dan Java OpenJDK 13, tetapi semua kode akan kompatibel dengan versi Java 8 hingga 13, jadi jangan ragu untuk menggunakan JDK pilihan Anda dan perbarui versi Java yang sesuai di POM.File XML Kami akan mengatur.
Untuk cluster MongoDB, kami akan menggunakan cluster mongodb Tier M0 gratis dari MongoDB Atlas . Jika Anda belum memilikinya, lihat Mulai dengan posting blog M0 Cluster M0.
Dapatkan Cluster M0 GRATIS Anda di MongoDB Atlas hari ini. Ini gratis selamanya, dan Anda akan dapat menggunakannya untuk bekerja dengan contoh -contoh dalam seri blog ini.
Mari kita masuk dan melihat seberapa baik java dan mongodb bekerja bersama.
Diatur
Untuk memulainya, kita perlu mengatur proyek Maven baru. Anda memiliki dua opsi pada saat ini. Anda dapat mengkloning repositori git seri ini atau Anda dapat membuat dan mengatur proyek Maven.
Menggunakan repositori git
Jika Anda memilih untuk menggunakan git, Anda akan segera mendapatkan semua kode. Saya masih menyarankan Anda membaca pengaturan manual.
Anda dapat mengkloning repositori jika Anda suka dengan perintah berikut.
Atau Anda dapat mengunduh repositori sebagai file zip .
Menyiapkan secara manual
Anda dapat menggunakan IDE favorit Anda untuk membuat proyek Maven baru untuk Anda atau Anda dapat membuat proyek Maven secara manual. Either way, Anda harus mendapatkan arsitektur folder berikut:
Pom.File XML harus berisi kode berikut:
Untuk memverifikasi bahwa semuanya berfungsi dengan benar, Anda harus dapat membuat dan menjalankan “halo mongodb yang sederhana!”Program. Dalam SRC/Main/Java/Com/MongoDB/QuickStart, Buat HelloMongoDB.File Java:
Kemudian kompilasi dan jalankan dengan IDE Anda atau gunakan baris perintah di direktori root (di mana folder SRC berada):
Hasilnya seharusnya terlihat seperti ini:
Catatan: Jika Anda melihat beberapa peringatan tentang akses reflektif ilegal dari Guice.java, aman untuk mengabaikan mereka. Guice digunakan oleh Maven dan membutuhkan pembaruan. Anda dapat membaca lebih lanjut tentang hal itu dalam masalah gitub ini . Peringatan ini akan hilang dalam rilis Guice dan Maven di masa depan.
Menghubungkan dengan java
Sekarang proyek Maven kami berfungsi dan kami telah menyelesaikan ketergantungan kami, kami dapat mulai menggunakan mongodb atlas dengan java.
Jika Anda telah mengimpor dataset sampel seperti yang disarankan dalam posting blog Start Atlas cepat, maka dengan kode Java yang akan kami buat, Anda akan dapat melihat daftar database dalam dataset sampel.
Langkah pertama adalah membuat instantiate mongoclient dengan melewati string koneksi MongoDB Atlas ke mongoclients.buat () metode statis. Ini akan membuat koneksi ke mongoDB atlas menggunakan string koneksi. Kemudian kita dapat mengambil daftar database pada cluster ini dan mencetaknya untuk menguji koneksi dengan MongoDB.
Di SRC/Main/Java/Com/MongoDB, buat koneksi.File Java:
Seperti yang Anda lihat, string koneksi MongoDB diambil dari Properti sistem , Jadi kita perlu mengatur ini. Setelah Anda mengambil string koneksi MongoDB Atlas Anda, Anda dapat menambahkan MongoDB.Properti Sistem Uri ke IDE Anda. Inilah konfigurasi saya dengan IntelliJ misalnya.
Atau jika Anda lebih suka menggunakan maven di baris perintah, berikut adalah baris perintah setara yang dapat Anda jalankan di direktori root:
Catatan: Jangan lupa kutipan ganda di sekitar URI MongoDB untuk menghindari kejutan dari cangkang Anda.
Output standar akan terlihat seperti ini:
Masukkan operasi
Diatur
Di bagian Connecting with Java, kami membuat kelas HelloMongoDB dan koneksi . Sekarang kami akan bekerja di kelas Buat.
Jika Anda tidak mengatur cluster gratis Anda di mongodb atlas, sekarang adalah waktu yang tepat untuk melakukannya. Dapatkan petunjuk untuk membuat cluster Anda .
Memeriksa model pengumpulan dan data
Dalam dataset sampel, Anda dapat menemukan database sample_training, yang berisi nilai koleksi . Setiap dokumen dalam koleksi ini mewakili nilai siswa untuk kelas tertentu.
Berikut adalah representasi JSON dari sebuah dokumen di shell Mongo .
Dan di sini adalah representasi JSON yang diperluas dari siswa yang sama. Anda dapat mengambilnya di MongoDB Compass, alat GUI gratis kami, jika Anda mau.
Extended JSON adalah versi manusia yang dapat dibaca dari dokumen BSON tanpa kehilangan informasi jenis. Anda dapat membaca lebih lanjut tentang pengemudi Java dan BSON di dokumentasi driver Java MongoDB .
Seperti yang Anda lihat, MongoDB menyimpan dokumen BSON dan untuk setiap pasangan nilai kunci, BSON berisi kunci dan nilainya bersama dengan jenisnya. Beginilah cara MongoDB tahu bahwa class_id sebenarnya adalah ganda dan bukan bilangan bulat, yang tidak eksplisit dalam representasi shell mongo dari dokumen ini.
Kami memiliki 10.000 siswa (Student_ID dari 0 hingga 9999) yang sudah ada dalam koleksi ini dan masing -masing mengambil 10 kelas berbeda, yang menambah hingga 100.000 dokumen dalam koleksi ini. Katakanlah seorang siswa baru (Student_ID 10.000) baru saja tiba di universitas ini dan menerima banyak nilai (acak) di kelas pertama. Mari masukkan dokumen siswa baru ini menggunakan Java dan driver Java MongoDB.
Di universitas ini, class_id bervariasi dari 0 hingga 500, jadi saya dapat menggunakan nilai acak antara 0 dan 500.
Integrasi Mongodb Java: 12 Langkah Mudah
Mulailah dengan operasi crud MongoDB di Python: 3 Langkah Mudah
Agregasi MongoDB Substring (Substr): Sederhana 101
Konektor MongoDB JavaScript (NodeJS) disederhanakan 101
Daftar isi
Halaman ini memberikan gambaran komprehensif tentang bagaimana Anda dapat memulai dengan MongoDB dan Java. Di posting ini, Anda’ll pelajari cara menghubungkan aplikasi java Anda ke instance mongodb. Maka Anda akan melakukan beberapa operasi MongoDB yang umum menggunakan driver java mongodb. Baca bersama untuk mengatur Mongodb Java Integrasi hari ini!
Daftar isi
Apa itu MongoDB?
MongoDB adalah database dokumen open-source yang memiliki berbagai aplikasi. Ini dapat digunakan sebagai database analitik, database transaksional, indeks pencarian, atau gudang data, di antara kasus penggunaan lainnya. MongoDB memiliki skema fleksibel yang memberikan dukungan untuk pengindeksan penuh, replikasi, penyimpanan seperti JSON, dan bahasa kueri yang tidak terstruktur.
Konsep MongoDB kunci adalah:
- Pengenal: ID adalah nama bidang yang digunakan untuk mewakili objek unik di MongoDB. Itu dapat dibuat secara eksplisit oleh pengguna atau secara implisit oleh server MongoDB.
- Koleksi: Ini adalah ember yang menyimpan sekelompok dokumen MongoDB. Itu termasuk dalam database dalam hierarki.
- Database: Ini adalah tingkat teratas organisasi data dalam contoh MongoDB. Database menyimpan koleksi dan instance mongoDB dapat berisi banyak database.
- Dokumen: Catatan yang disimpan dalam koleksi MongoDB disebut dokumen. Mereka berisi kunci dan nilai. Nilai bisa berupa string, bilangan bulat, boolean, tanggal serta dokumen tertanam lainnya.
- Bidang: Ini mengacu pada pasangan kunci/nilai dalam dokumen.
Selesaikan masalah replikasi data Anda dengan jalur pipa Hevo yang andal, tanpa kode, dan otomatis dengan 150+ konektor.


Fitur Utama Mongodb
MongoDB memiliki beberapa kemampuan luar biasa yang membuatnya dapat digunakan secara luas dan populer. Mari kita lihat fitur teknis teratas Mongodb:
Mendukung kueri ADHOC
Salah satu manfaat terbesar yang membuat MongoDB menonjol adalah kinerjanya saat menangani pertanyaan ad hoc pada data yang biasanya diperbarui secara real-time. MongoDB dapat melakukan pencarian lapangan, rentang pencarian, serta permintaan ekspresi reguler.
Pengindeksan
Pengindeksan adalah fitur penting dari database untuk meningkatkan kecepatan pencarian dan kinerja kueri pencarian. Tanpa pengindeksan, database akan dipaksa untuk memindai dokumen satu per satu untuk memilih yang sesuai dengan kueri yang tidak efisien. Namun, jika setiap kueri memiliki indeks yang sesuai, permintaan pengguna dapat dengan cepat dieksekusi oleh server. Dengan pengindeksan MongoDB dimungkinkan dengan bidang atau kunci apa pun, dalam dokumen yang menopang pola akses kompleks ke set data.
Database tanpa skema
Database relasional klasik menggunakan skema untuk menentukan setiap elemen fungsional, termasuk tabel, tampilan baris, indeks, dan hubungan. Di MongoDB, satu koleksi memelihara berbagai dokumen. Tidak ada skema sehingga mungkin ada banyak dokumen dalam koleksi, memiliki kunci yang berbeda, dan kunci ini mungkin unik. Database skema, seperti MongoDB, lebih fleksibel karena tidak membawa kendala di muka ini, memetakan ke database yang lebih alami.
Untuk mempelajari lebih lanjut tentang MongoDB, kunjungi di sini.
Apa itu Jawa?
Java adalah bahasa pemrograman yang populer’sebagian besar digunakan untuk pengembangan sisi server serta pengembangan aplikasi seluler. Dalam desainnya, Java adalah bahasa yang berorientasi objek yang hanya berarti bahwa semua data dan metode direpresentasikan sebagai kelas dan objek.
Java dapat dikompilasi atau ditafsirkan yang berarti bahwa terjemahan kode Java ke bytecode atau format biner dapat dilakukan dengan menggunakan kompiler atau juru bahasa. Sejak itu’S bahasa yang dikompilasi, itu’s sangat cepat saat runtime dan juga sangat mudah untuk debug.
Beberapa kasus penggunaan Java teratas termasuk pengembangan:
- Aplikasi Android
- Aplikasi GUI Desktop
- Aplikasi Web
- Aplikasi ilmiah
- Aplikasi sisi server sektor keuangan
- Sistem tertanam
Fitur Utama Java
Fitur -fitur berikut memberi Java keunggulan atas bahasa pemrograman lainnya:
- Berorientasi pada objek: Bahasa pemrograman java memperlakukan segalanya sebagai objek. Ini dapat dengan mudah memetakan skenario dunia nyata ke dalam kode dengan memperlakukan entitas individu sebagai objek.
- Platform Independent: Tidak seperti bahasa pemrograman  seperti C dan C ++, Java tidak dikompilasi dalam mesin khusus platform. Ini menghasilkan kode byte platform-independen yang didistribusikan melalui internet dan ditafsirkan oleh Java Virtual Machine (JVM) yang diinstal pada sistem apa pun.
- Keamanan: Dengan fitur keamanan bahasa pemrograman Java, ini memungkinkan Anda untuk mengembangkan sistem tamper-anti-peramal dan bebas virus. Juga, ia menggunakan teknik otentikasi berbasis kriptografi publik untuk menjaga kode dan data Anda aman.
- Portabel: Java adalah bahasa pemrograman arsitektur-independen. Jadi mudah untuk port kode yang ditulis dalam bahasa pemrograman java untuk prosesor yang berbeda.
- Kokoh: Java adalah bahasa pemrograman yang berusaha untuk menghilangkan instance rawan kesalahan menggunakan pemeriksaan kesalahan waktu kompilasi dan pemeriksaan runtime.
Untuk mempelajari lebih lanjut tentang bahasa pemrograman Java, kunjungi di sini.
Sederhanakan analisis data Anda dengan pipa data no-kode Hevo
Hevo Data, pipa data no-kode otomatis membantu memuat data dari sumber data apa pun seperti database, aplikasi SaaS, penyimpanan cloud, SDK, S, dan layanan streaming dan menyederhanakan proses ETL. Ini mendukung 100+ sumber data seperti Mongodb dan memuat data ke gudang data yang diinginkan, memperkaya data, dan mengubahnya menjadi bentuk yang siap analisis tanpa menulis satu baris kode tunggal.
Pipa yang sepenuhnya otomatis menawarkan data untuk dikirim secara real-time tanpa kehilangan dari sumber ke tujuan. Arsitektur yang toleran terhadap kesalahan dan scalable memastikan bahwa data ditangani dengan cara yang aman dan konsisten dengan kehilangan data nol dan mendukung berbagai bentuk data. Solusi yang diberikan konsisten dan bekerja dengan alat intelijen bisnis (BI) yang berbeda juga.
Lihatlah mengapa Hevo adalah BEST:
- Aman: Hevo memiliki arsitektur yang toleran terhadap kesalahan yang memastikan bahwa data ditangani dengan cara yang aman dan konsisten dengan kehilangan data nol.
- Manajemen Skema: Hevo menghilangkan tugas yang membosankan dari manajemen skema & secara otomatis mendeteksi skema data yang masuk dan memetakannya ke skema tujuan.
- Pembelajaran minimal: Hevo, dengan UI yang sederhana dan interaktif, sangat sederhana bagi pelanggan baru untuk bekerja dan melakukan operasi.
- Hevo dibangun untuk skala: Seiring jumlah sumber dan volume data Anda tumbuh, skala hevo secara horizontal, menangani jutaan catatan per menit dengan latensi yang sangat sedikit.
- Beban data tambahan: Hevo memungkinkan transfer data yang telah dimodifikasi secara real-time. Ini memastikan pemanfaatan bandwidth yang efisien di kedua ujungnya.
- Dukungan langsung: Tim Hevo tersedia sepanjang waktu untuk memberikan dukungan luar biasa kepada pelanggannya melalui obrolan, email, dan panggilan dukungan.
- Pemantauan langsung: Hevo memungkinkan Anda untuk memantau aliran data dan memeriksa di mana data Anda berada pada titik waktu tertentu.
Apa langkah -langkah untuk mengatur integrasi java mongodb?
Semoga sekarang, Anda telah memperoleh beberapa pemahaman dasar tentang Mongodb dan Java serta mengapa mereka’digunakan kembali dalam pengembangan aplikasi. Sekarang biarkan’S menyelam dan lihat langkah -langkah yang digunakan Anda dapat mengatur Mongodb Java integrasi:
- Langkah 1: Instal Paket OpenJDK
- Langkah 2: Atur variabel lingkungan java_home
- Langkah 3: Instal MongoDB
- Langkah 4: Instal IDE atau Editor
- Langkah 5: Siapkan Proyek Java Baru
- Langkah 6: Instal Perpustakaan Klien MongoDB Java
- Langkah 7: Gunakan Perpustakaan Klien MongoDB Java
- Langkah 8: Buat koleksi MongoDB
- Langkah 9: Buat dokumen
- Langkah 10: Dokumen Permintaan
- Langkah 11: Perbarui dokumen
- Langkah 12: Hapus Dokumen
Langkah 1: Instal Paket OpenJDK
Untuk mengikuti dengan pengaturan MongoDB Java, Anda’Pertama -tama perlu menyiapkan mesin lokal Anda untuk pengembangan java. Untuk melakukannya, Anda harus terlebih dahulu menginstal paket OpenJDK 8 (Open Java Development).
1) Linux
Jika kamu’Re on debian atau ubuntu, buka baris perintah Anda dan jalankan perintah berikut:
$ sudo apt-get instal OpenJDK-8-JDK Untuk Centos, Red Hat, Oracle, Fedora, dan distribusi Linux serupa lainnya menggunakan perintah berikut:
$ su -c "yum install java -1.8.0-Openjdk-devel " 2) MacOS
Jika kamu’Re pada macOS Gunakan perintah berikut:
% minuman menginstal openjdk@8 Kemudian buat tautan simbolis sehingga pembungkus java dapat menemukannya:
% sudo ln -sfn/usr/local/opt/openjdk@8/libexec/openjdk.JDK/Library/Java/JavavirtualMachines/OpenJDK-8.jdk 3) Windows
- Unduh penginstal berbasis MSI dari tautan ini.
- Ekstrak file zip ke folder.
- Jalankan OpenJDK 8 untuk Pemasang Windows.
- Ikuti petunjuk di layar untuk menginstal.
Langkah 2: Atur variabel lingkungan java_home
Setelah JDK Anda ada, Anda perlu menginstal lingkungan Java untuk melanjutkan dengan integrasi Java MongoDB Anda.
1) Linux
- Buka Terminal dan Ketik Anda:
sudo nano /etc /profile - Kemudian buka ujung file dan ketik:
Ekspor java_home =/usr/lib/jvm/java-8-openjdk-amd64/bin/java jalur ekspor = $ java_home/bin: $ path - Simpan file dan keluar (ctrl+o, ctrl+x).
2) MacOS
- Buka Terminal dan Ketik Anda:
Emacs .Profil - Kemudian buka ujung file dan ketik:
Java_home =/library/java/home ekspor java_home; - Simpan dan keluar (Ctrl-X, Ctrl-S; CTRL-X, CTRL-C).
3) Windows
Untuk mengatur variabel lingkungan pada mesin windows Anda, buka prompt perintah dengan hak istimewa admin dan jalankan perintah berikut:
setx -m java_home "c: progra ~ 1javajdk1.8.0_xx " Selanjutnya, restart command prompt untuk memuat ulang variabel lingkungan. Jalankan perintah berikut untuk memeriksa apakah jalur telah ditambahkan:
echo %java_home % Langkah 3: Instal MongoDB
Setelah Anda selesai dengan bagian Java dari integrasi Java MongoDB, saatnya menginstal MongoDB dan alat -alatnya.
1) Linux
- Buka terminal dan keluarkan perintah berikut untuk mengimpor kunci publik MongoDB dari sistem manajemen paket:
wget -qo - https: // www.Mongodb.org/static/pgp/server-5.0.ASC | sudo apt-key add - - Selanjutnya buat file daftar dengan mengeluarkan perintah berikut:
Echo "Deb [Arch = AMD64, ARM64] https: // repo.Mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse "| sudo tee/etc/apt/sumber.daftar.d/mongodb-org-5.0.daftar - Segarkan database paket.
pembaruan sudo apt-get - Jalankan perintah berikut untuk menginstal MongoDB:
sudo apt-get install -y mongodb-org - Mulai MongoDB:
Sudo Systemctl Mulai Mongod - Verifikasi bahwa MongoDB sedang berjalan:
Sudo Systemctl Status Mongod MongoDB harus berjalan di port 27017.
Instruksi di atas diuji pada Ubuntu 20.0. Anda bisa mendapatkan instruksi instalasi untuk distribusi Linux lainnya dari tautan berikut.
2) MacOS
- Mengeluarkan perintah berikut untuk mengunduh formula homebrew untuk MongoDB:
BREW TAP MONGODB/BREW - Instal MongoDB menggunakan perintah berikut:
buatan menginstal [email protected] - Untuk komputer macOS yang menjalankan prosesor Intel, mulailah MongoDB menggunakan perintah berikut:
mongod --config/usr/local/etc/mongod.conf - -fork - Untuk komputer macOS yang menjalankan prosesor M1, gunakan perintah berikut:
mongod --config/opt/homebrew/etc/mongod.conf - -fork 3) Windows
- Unduh penginstal berbasis MONGODB MSI dari tautan ini.
- Jalankan penginstal dengan mengklik dua kali .file MSI.
- Ikuti petunjuk di layar untuk menginstal.
Langkah 4: Instal IDE atau Editor
Untuk menjalankan contoh yang diberikan di blog ini, kami sarankan Anda menggunakan Lingkungan Pengembangan Terpadu (IDE). Ini karena itu membuatnya jauh lebih nyaman bagi Anda untuk mengonfigurasi Maven atau Gradle saat membangun dan menjalankan proyek Java Anda.
Dibawahmu’akan menemukan daftar beberapa editor populer yang digunakan untuk mengembangkan aplikasi java dan akan sesuai dengan Anda Mongodb Java integrasi:
- Atom oleh GitHub
- Ide IntelliJ oleh JetBrains
- Kode Studio Visual oleh Microsoft
- Eclipse oleh Eclipse Foundation
IDE ini menawarkan fitur -fitur yang berguna seperti penyorotan sintaks, penyelesaian kode, kemampuan debugging yang terintegrasi sepenuhnya, dan banyak lagi.
Langkah 5: Siapkan Proyek Java Baru
Menggunakan IDE Favorit Anda, Buat Proyek Maven atau Gradle baru. Jika kamu’menggunakan Maven, Anda harus mendapatkan struktur folder berikut:
Java-cepat-cepat/         Â.xml                                             MONGODB Jika Anda menggunakan Gradle, Anda harus memiliki struktur folder berikut:
membangun.lulusan         Java          Langkah 6: Instal Perpustakaan Klien MongoDB untuk Java
Perpustakaan Klien MongoDB untuk Java memungkinkan Anda terhubung ke dan berkomunikasi dengan instance MongoDB Anda dari aplikasi Java.
Jika Anda menggunakan Maven, tambahkan Perpustakaan Klien MongoDB Java ke daftar dependensi Anda di pom.xml mengajukan.
org.Mongodb MongoDB-Driver-Sync 4.4.1 Milikmu pom.xml File sekarang harus terlihat seperti ini:
4.0.0 com.Mongodb Java-cepat-cepat 1.0-snapshot 8 8 UTF-8 4.4.1 3.10.0 org.Mongodb MongoDB-Driver-Sync $ org.Apache.Maven.plugin Maven-kompiler-plugin $ $ $ Jika kamu’menggunakan lulusan, tambahkan cuplikan kode berikut ke Anda membangun.lulusan Daftar Dependensi untuk Integrasi Java MongoDB Anda:
dependensi
Milikmu membangun.lulusan File harus menyerupai file berikut:
plugin < id 'base' >Impor org.lulusan.distribusi.Download gradle versi = '0.1 'dependensi < compile 'org.mongodb:mongodb-driver-sync:4.4.1' >tugas.Register ('DownloadGradle', DownloadGradle) < description = 'Downloads the Gradle distribution with a given version.' gradleVersion = '4.6' >tugas.Daftar ('CreateCustomGradledistribution', Zip) < description = 'Builds custom Gradle distribution and bundles initialization scripts.' dependsOn downloadGradle def projectVersion = project.version archiveFileName = downloadGradle.gradleVersion.map < gradleVersion ->"MyCompany-gradle-$-$-bin.zip "> dari ziptree (downloadgradle.DestinationFile) dari ('src/init.D') < into "$/init.d" > > Langkah 7: Menggunakan Perpustakaan Klien MongoDB Java
Untuk menggunakan Perpustakaan Klien MongoDB Java, buat file yang akan berisi aplikasi Anda di dalam direktori paket dasar proyek Anda. Anda bisa menamakannya Aplikasi.Jawa.
Tambahkan pernyataan impor berikut untuk menginisialisasi perpustakaan:
Impor com statis.Mongodb.klien.model.Filter.Persamaan; Impor org.BSON.Dokumen; Impor com.Mongodb.klien.Mongoclient; Impor com.Mongodb.klien.Mongoclients; Impor com.Mongodb.klien.Mongocollection; Impor com.Mongodb.klien.Mongodatabase; Langkah 8: Buat koleksi MongoDB
Dengan itu, itu’Sekarang saatnya integrasi Java MongoDB Anda berinteraksi dengan database. Membiarkan’MULAI PERTAMA dengan membuat koleksi. Anda dapat membuat koleksi MongoDB dengan menentukan database target menggunakan getDatabase () metode dan kemudian memohon CreateCollection () metode com.Mongodb.klien.Mongodatabase antarmuka. Metode ini menerima nilai string literal dengan nama koleksi. Jika database tidak ada, MongoDB akan membuatnya secara implisit.
Cuplikan kode berikut membuat koleksi dalam database MongoDB:
Impor Java.util.Array; Impor org.BSON.Dokumen; Impor org.BSON.tipe.ObjectId; Impor com.Mongodb.MongoException; Impor com.Mongodb.klien.Mongoclient; Impor com.Mongodb.klien.Mongoclients; Impor com.Mongodb.klien.Mongocollection; Impor com.Mongodb.klien.Mongodatabase; Impor com.Mongodb.klien.hasil.Insertoneresult; Penagihan kreatif kelas publik < public static void main(String[] args) < String uri = "mongodb://localhost:27017"; // Create a MongoDB Client MongoClient mongoClient = MongoClients.create(uri)); // Create a MongoDB database MongoDatabase database = mongoClient.getDatabase("usersDB"); // Create a MongoDB Collection MongoCollectioncollection = database.createCollection("users"); System.out.println("Collection Created Successfully!"); > > Langkah 9: Buat dokumen
Cuplikan berikut menggunakan insertOne () metode untuk memasukkan dokumen ke pengguna’Koleksi S yang Anda buat di langkah sebelumnya. Jika database atau kumpulan tidak ada, MongoDB akan membuat keduanya.
Impor Java.util.Array; Impor org.BSON.Dokumen; Impor org.BSON.tipe.ObjectId; Impor com.Mongodb.MongoException; Impor com.Mongodb.klien.Mongoclient; Impor com.Mongodb.klien.Mongoclients; Impor com.Mongodb.klien.Mongocollection; Impor com.Mongodb.klien.Mongodatabase; Impor com.Mongodb.klien.hasil.Insertoneresult; InsertOne kelas publik < public static void main(String[] args) < String uri = "mongodb://localhost:27017"; try (MongoClient mongoClient = MongoClients.create(uri)) < MongoDatabase database = mongoClient.getDatabase("usersDB"); MongoCollectioncollection = database.getCollection("users"); try < InsertOneResult result = collection.insertOne(new Document() .append("_id", new ObjectId()) .append("username", "vitali@30") .append("phonenumber", 2501345876) .append("email", "[email protected]) ); System.out.println("Success! Inserted document id: " + result.getInsertedId()); >Catch (MongoException Me) < System.err.println("Unable to insert due to an error: " + me); >>>> Dimungkinkan juga untuk memasukkan beberapa dokumen ke dalam koleksi sekaligus dengan memohon InsertMany () metode. Untuk memasukkan beberapa dokumen, Anda harus menambahkannya ke daftar dan meneruskan daftar itu sebagai array. Cuplikan kode berikut menggambarkan bagaimana Anda dapat menggunakan InsertMany () metode untuk mencapai ini.
Impor Java.util.Array; Impor Java.util.Daftar; Impor org.BSON.Dokumen; Impor com.Mongodb.MongoException; Impor com.Mongodb.klien.Mongoclient; Impor com.Mongodb.klien.Mongoclients; Impor com.Mongodb.klien.Mongocollection; Impor com.Mongodb.klien.Mongodatabase; Impor com.Mongodb.klien.hasil.InsertmanyResult; Insertmany kelas publik < public static void main(String[] args) < String uri = "mongodb://localhost:27017"; try (MongoClient mongoClient = MongoClients.create(uri)) < MongoDatabase database = mongoClient.getDatabase("usersDB"); MongoCollectioncollection = database.getCollection("users"); List userList = Arrays.asList( new Document().append("username", "owen hart"), new Document().append("username", "jack grealish")); try < InsertManyResult result = collection.insertMany(userList); System.out.println("Inserted document ids: " + result.getInsertedIds()); >Catch (MongoException Me) < System.err.println("Unable to insert due to an error: " + me); >>>> Langkah 10: Dokumen Permintaan
Bekerja dengan integrasi Java MongoDB Anda, Anda dapat mengambil dokumen dalam koleksi dengan memohon menemukan() metode. Metode ini mengembalikan objek iterable yang berisi semua dokumen dalam koleksi:
Impor com.Mongodb.klien.Dapat ditemukan; Impor com.Mongodb.klien.Mongocollection; Impor com.Mongodb.klien.Mongodatabase; Impor Java.util.Iterator; Impor org.BSON.Dokumen; Impor com.Mongodb.Mongoclient; Temukan kelas publik < public static void main( String[] args ) < String uri = "mongodb://localhost:27017"; try (MongoClient mongoClient = MongoClients.create(uri)) < MongoDatabase database = mongoClient.getDatabase("usersDB"); MongoCollectioncollection = database.getCollection("users"); FindIterable iterDoc = collection.find(); Iterator it = iterDoc.iterator(); while (it.hasNext()) < System.out.println(doc.it.next()); >>>> Langkah 11: Perbarui dokumen
Pembaruan dalam database MongoDB dapat dilakukan dengan menggunakan updateOne () metode Pembaruan kelas. Dalam contoh berikut, Anda akan memperbarui nilai nomor telepon dan menambahkan alamat ke dokumen yang cocok dengan nama pengguna “vitali@30”.
Impor org.BSON.Dokumen; Impor org.BSON.konversi.Bson; Impor com.Mongodb.MongoException; Impor com.Mongodb.klien.Mongoclient; Impor com.Mongodb.klien.Mongoclients; Impor com.Mongodb.klien.Mongocollection; Impor com.Mongodb.klien.Mongodatabase; Impor com.Mongodb.klien.model.UpdateOptions; Impor com.Mongodb.klien.model.Pembaruan; Impor com.Mongodb.klien.hasil.Updateresult; Pembaruan kelas publik < public static void main(String[] args) < String uri = "mongodb://localhost:27017"; try (MongoClient mongoClient = MongoClients.create(uri)) < MongoDatabase database = mongoClient.getDatabase("usersDB"); MongoCollectioncollection = database.getCollection("users"); Document query = new Document().append("username", "vitali@30"); Bson updates = Updates.combine( Updates.set("phonenumber", 010154257), Updates.addToSet("address", "666, 5th Avenue, NYC")); UpdateOptions options = new UpdateOptions().upsert(true); try < UpdateResult result = collection.updateOne(query, updates, options); System.out.println("Modified document count: " + result.getModifiedCount()); System.out.println("Upserted id: " + result.getUpsertedId()); // only contains a value when an upsert is performed >Catch (MongoException Me) < System.err.println("Unable to update due to an error: " + me); >>>> Langkah 12: Hapus Dokumen
Setelah integrasi Java MongoDB diatur, Anda masih dapat melakukan operasi penghapusan pada dokumen di MongoDbCollection menggunakan deleteOne () metode. Metode ini menerima filter kueri yang cocok dengan dokumen yang ingin Anda hapus.
Cuplikan kode berikut akan menghapus satu pengguna dengan menggunakan eq () filter untuk mengidentifikasi pengguna tertentu dengan nama pengguna “vitali@30” Dari integrasi Java MongoDB Anda:
Impor com statis.Mongodb.klien.model.Filter.Persamaan; Impor org.BSON.Dokumen; Impor org.BSON.konversi.Bson; Impor com.Mongodb.MongoException; Impor com.Mongodb.klien.Mongoclient; Impor com.Mongodb.klien.Mongoclients; Impor com.Mongodb.klien.Mongocollection; Impor com.Mongodb.klien.Mongodatabase; Impor com.Mongodb.klien.hasil.Deleteresult; DeleteOne kelas publik < public static void main(String[] args) < String uri = "mongodb://localhost:27017"; try (MongoClient mongoClient = MongoClients.create(uri)) < MongoDatabase database = mongoClient.getDatabase("usersDB"); MongoCollectioncollection = database.getCollection("users"); Bson query = eq("username", "vitali@30"); try < DeleteResult result = collection.deleteOne(query); System.out.println("Deleted document count: " + result.getDeletedCount()); >Catch (MongoException Me) < System.err.println("Unable to delete due to an error: " + me); >>>> Itu’duduk! Anda sekarang dapat mengatur sendiri Mongodb Java integrasi.
Kesimpulan
Artikel ini memperkenalkan Anda pada bahasa pemrograman Mongodb dan Java bersama dengan fitur utama mereka. Jika Anda telah berhasil menyelesaikan panduan ini, Anda harus memiliki ide bagus tentang cara mengatur Mongodb Java integrasi. Anda telah membahas langkah -langkah yang diperlukan untuk mengatur lingkungan pengembangan MongoDB dan Java di PC atau server Anda. Anda juga membahas cara menggunakan driver java untuk terhubung ke instance mongodb Anda. Akhirnya, Anda melihat contoh cara menulis beberapa operasi java crud mongodb sederhana.
MongoDB adalah alat yang hebat untuk menyimpan data bisnis Anda. Namun, kadang -kadang, Anda perlu mentransfer data ini ke gudang data untuk analisis lebih lanjut. Membangun solusi in-house untuk proses ini bisa menjadi tugas yang mahal dan memakan waktu. Data HEVO, di sisi lain, menawarkan pipa data tanpa kode yang dapat mengotomatiskan proses transfer data Anda, sehingga memungkinkan Anda untuk fokus pada aspek lain dari bisnis Anda seperti analitik, manajemen pelanggan, dll. Platform ini memungkinkan Anda untuk mentransfer data dari 100+ sumber seperti Mongodb ke gudang data berbasis cloud seperti Snowflake, Google BigQuery, Amazon Redshift, dll. Ini akan memberi Anda pengalaman bebas repot dan membuat kehidupan kerja Anda lebih mudah.
Ingin mengambil hevo untuk putaran? Mendaftar untuk uji coba gratis 14 hari dan mengalami Hevo Suite yang kaya fitur secara langsung.
Bagikan pandangan Anda Mongodb Java Integrasi di bagian komentar!
Transaksi Java MongoDB: Penciptaan, Manajemen & Alur Kerja Sederhana | Panduan 101
Menangani database dan melakukan beberapa operasi pada data bisa menjadi tantangan. Sistem manajemen basis data diperkenalkan untuk menyelesaikan masalah manajemen dan kerja dari data yang dikumpulkan. Salah satu database paling populer adalah MongoDB. MongoDB adalah salah satu database yang paling fleksibel, dan menjalankannya dengan java membuatnya lebih cepat dan lebih mudah.
Daftar isi
Dalam artikel ini, Anda akan belajar tentang transaksi Java Mongodb. Dan lebih lanjut, kami akan membahas cara membuat, mengelola, dan bekerja dengan transaksi MongoDB.
Daftar isi
- Prasyarat
- Apa itu MongoDB?
- Cara menjalankan mongodb dengan java?
- Apa itu transaksi mongodb?
- Penciptaan transaksi java mongodb
- Manajemen Transaksi Java Mongodb
- Alur kerja transaksi java mongodb
- Kesimpulan
Prasyarat
Pemahaman Dasar Database.
Apa itu MongoDB?
MongoDB adalah database NoSQL yang pada dasarnya berbeda dari database SQL. MongoDB adalah basis data non-relasional, open-source, platform-independent, dan berbasis dokumen. Database SQL menyimpan data terkait dalam tabel, sedangkan MongoDB berurusan dengan data yang tidak terkait.
MongoDB mendukung transaksi asam (atomisitas, konsistensi, isolasi, dan daya tahan) dalam dokumen tunggal atau ganda. Sifat asam transaksi ini memastikan bahwa operasi transaksi yang kompleks aman dan andal, menjamin validitas data. MongoDB memperkenalkan beberapa dokumen, koleksi, dan transaksi asam basis data di MongoDB 4.0 versi.
MongoDB berjalan pada sistem operasi standar, Windows, Linux, MacOS, dan Cloud. Edisi MongoDB yang berjalan pada sistem operasi adalah Server Komunitas MongoDB, dan instalasi MongoDB di cloud disebut MongoDB Atlas.
Cara menjalankan mongodb dengan java?
Siapkan Java di sistem Anda dan lingkungan pengembangan terintegrasi (IDE) pilihan Anda. Untuk mengatur Java dan Mongodb, pertama, Anda harus mendapatkan driver java Mongodb. Sumber daya untuk instalasi MongoDB akan diambil oleh dua IDE baik di Gradle atau Maven. Driver Java MongoDB memberikan interaksi sinkron dan asinkron.
Langkah -langkah untuk mendapatkan driver java mongodb
- Instal versi driver MongoDB yang tepat dari situs web ini. Kemudian, pergi ke produk dari ikon menu. Temukan ‘Data Direct’ opsi dan klik di atasnya.
- Anda akan dialihkan ke halaman web lain di mana Anda dapat menemukan ‘Konektivitas Data’ Opsi di panel ikhtisar, di mana Anda akan melihat JDBC. Klik di atasnya.
- Halaman lain akan terbuka. Cari MongoDB dari daftar dan klik untuk bergerak lebih jauh.
- Halaman baru akan muncul, di mana Anda akan melihat opsi unduhan. Klik di atasnya, dan kemudian Anda akan memiliki dua opsi; Windows dan Linux. Sesuai sistem OS Anda, klik untuk mengunduh.
- Anda harus mengisi formulir untuk diunduh dan klik unduh.
- Setelah diunduh, ekstrak file yang diunduh.
- Buka file yang diekstraksi untuk memulai instalasi. Klik ‘Berikutnya’ untuk melanjutkan.
- Terima semua syarat dan ketentuan, lalu lanjutkan dengan mengklik Next.
- Catatan: Jangan mengubah apa pun di dua jendela mendatang. Klik di sebelah untuk melanjutkan.
- Akhirnya, Anda akan mencapai opsi menginstal. Klik di atasnya, dan instalasi akan dimulai.
- Tunggu proses instalasi selesai.
- Saat instalasi selesai, klik selesai untuk menyelesaikan instalasi.
- Buka drive C Anda dan ikuti jalur di bawah ini. Jika Anda menemukan folder JDBC, instalasi berhasil.
Skala integrasi data Anda dengan mudah dengan Hevo’S FaRLOT-TOLERANT Tidak ada pipa data data
Karena kemampuan bisnis untuk mengumpulkan data yang meledak, tim data memiliki peran penting dalam memicu keputusan berbasis data. Namun, mereka berjuang untuk mengkonsolidasikan data yang tersebar di gudang mereka untuk membangun satu sumber kebenaran tunggal. Pipa yang rusak, masalah kualitas data, bug dan kesalahan, dan kurangnya kontrol dan visibilitas atas aliran data membuat integrasi data menjadi mimpi buruk.
1000+ tim data bergantung pada Hevo’S Platform pipa data untuk mengintegrasikan data dari lebih dari 150+ sumber dalam hitungan menit. Miliaran peristiwa data dari sumber yang bervariasi seperti aplikasi SaaS, database, penyimpanan file, dan sumber streaming dapat direplikasi dalam waktu dekat dengan Hevo’arsitektur toleran kesalahan. Apa’s More-Hevo menempatkan kontrol penuh di tangan tim data dengan dasbor intuitif untuk pemantauan pipa, manajemen skema otomatis, dan jadwal konsumsi/pemuatan khusus.
Ini, dikombinasikan dengan harga transparan dan dukungan 24 × 7, menjadikan kami perangkat lunak pipa data paling khusus di situs ulasan.
Ikuti uji coba gratis 14 hari kami untuk mengalami cara yang lebih baik untuk mengelola pipa data.
Apa itu transaksi mongodb?
Transaksi di MongoDB adalah kelompok logis proses yang melakukan satu atau lebih operasi di beberapa dokumen. Transaksi menyediakan cara untuk mengelompokkan dan mengisolasi banyak pernyataan dan memprosesnya sebagai operasi tunggal.
Alih -alih menjalankan banyak perintah secara individual, Anda dapat menggunakan transaksi untuk menggabungkan dan menjalankan perintah dalam konteks yang berbeda.
Operasi ini dalam transaksi adalah beberapa operasi baca dan tulis yang dilakukan untuk dan dari database MongoDB. Transaksi mempertahankan integritas rangkaian operasi dan memberikan konsistensi data yang kuat kepada pengguna akhir.
Transaksi di MongoDB memiliki sifat asam. Properti ini memastikan bahwa operasi yang kompleks aman dan dapat diandalkan. MongoDB mendukung multi-dokumen dan terdistribusi multi-dokumen.
Penciptaan transaksi java mongodb
Transaksi hanya dapat dilakukan pada database yang berjalan sebagai bagian dari cluster besar. Cluster ini bisa menjadi cluster database berbulu atau set replika. Biasanya, transaksi MongoDB ditulis dan dieksekusi dari aplikasi eksternal melalui metode API. Disini kita’ll membuat transaksi menggunakan shell mongodb.
Catatan: Setelah metode startTransaction () awal, operasi akan secara otomatis membatalkan jika sesi transaksi berjalan selama lebih dari 60 detik.
Berikut ini adalah langkah -langkah untuk mengkonseptualisasikan sesi transaksi dari awal hingga akhir.
db.penulis.menemukan() [ < _id: ObjectId("620397dd4b871fc65c193106"), first_name: 'James', last_name: 'Joyce', title: 'Ulysses' >, < _id: ObjectId("620398016ed0bb9e23785973"), first_name: 'William', last_name: 'Gibson', title: 'Neuromancer' >, < _id: ObjectId("6203981d6ed0bb9e23785974"), first_name: 'George', last_name: 'Orwell', title: 'Homage to Catalonia' >, < _id: ObjectId("620398516ed0bb9e23785975"), first_name: 'James', last_name: 'Baldwin', title: 'The Fire Next Time' >] Sama dengan API, Anda membuat sesi transaksi dengan menggunakan kode:
var sesi = db.getmongo ().startession () Langkah selanjutnya adalah memulai transaksi dengan memanggil metode startTransaction (). Gunakan perintah di bawah ini:
sidang.startTransaction ( < "readConcern": < "level": "snapshot" >, "WriteConcern": < "w": "majority >>) Ada dua opsi untuk Metode StartTransaction (): Baca Kekhawatiran dan Tulis Kekhawatiran.
Set yang menjadi perhatian dibaca diabaikan di dalam transaksi di tingkat koleksi dan database. Oleh karena itu, Anda harus menetapkan masalah membaca tingkat transaksi di startTransaction (). Namun, Default Baca yang Dibaca Ditetapkan ke Kekhawatiran Tingkat Sesi untuk Transaksi.
Jika kedua tingkat transaksi dan masalah membaca tingkat sesi tidak ditetapkan, maka masalah yang dibaca dari tingkat klien ditetapkan secara otomatis. Kekhawatiran membaca tingkat klien adalah ‘lokal’ untuk membaca terhadap yang utama.
Kekhawatiran menulis digunakan untuk melakukan operasi tulis. Operasi tulis di dalam transaksi harus dikeluarkan secara implisit dengan menentukan masalah tulis. Operasi penulisan kemudian dilakukan dengan menggunakan keprihatinan tulis tingkat transaksi.
Anda dapat mengatur masalah tulis tingkat transaksi di startTransaction (). Jika masalah tulis tingkat transaksi tidak ditetapkan, itu default untuk masalah tulis tingkat sesi untuk komit. Jika masalah penulisan tingkat transaksi dan tingkat sesi tidak disetel, masalah tulis tingkat transaksi secara otomatis diberikan ke masalah tulis tingkat klien.
Manajemen Transaksi Java Mongodb
Mengelola semua transaksi bisa menjadi pekerjaan yang besar, tetapi berikut adalah beberapa cara untuk mengelola transaksi. Anda dapat menambahkan dukungan transaksi menggunakan Java Spring Data dan Java Mongo Drivers. API pengemudi melakukan ini:
coba (klien sesi = klien.startession ()) < session.startTransaction(); try < collection.insertOne(session, documentOne); collection.insertOne(session, documentTwo); session.commitTransaction(); >Tangkap (pengecualian e) < session.abortTransaction(); >> Sesi klien yang diperoleh dari klien.startession () harus berumur pendek dan dilepaskan sekaligus ketika tidak lagi dibutuhkan. Dengan demikian, pastikan untuk memasukkan perintah tutup ().
Cuplikan di atas berisi sesi (LSID) di setiap baris perintah. ‘StartTransaksi’ dikirim dengan perintah pertama yang mewakili transaksi. Dan ketika selesai, transaksi dilakukan dengan mengirim ‘Persetujuan.’
Versi mongoDB sebelumnya tidak mendukung transaksi, jadi bagian pentingnya adalah untuk mengkonfigurasi MongotransactionManager di ApplicationContext Anda. Transaction Manager adalah titik masuk untuk dukungan transaksi berbasis anotasi. Untuk konfigurasi, gunakan kode di bawah ini:
@Configuration Class Config Extends AbstractMongoconfiguration < @Bean MongoTransactionManager transactionManager(MongoDbFactory dbFactory) < return new MongoTransactionManager(dbFactory); >> @Service class documentservice < private final MongoOperations operations; DocumentService(MongoOperations operations) < this.operations = operations; >@Transactional void insertDocuments () < operations.insert(documentOne); operations.insert(documentTwo); >> Itu’duduk. Tidak banyak untuk mengelola transaksi Java MongoDB, jadi ada beberapa langkah sederhana untuk dilihat.
Alur kerja transaksi java mongodb
Pada tahap pertama menggunakan transaksi, Anda harus memulai sesi MongoDB melalui pengemudi. Artikel ini mengikuti sesi MongoDB dengan pengemudi Java MongoDB. Kemudian, gunakan sesi itu untuk menjalankan grup operasi database Anda. Anda dapat menjalankan operasi crud (buat, baca, perbarui, dan hapus) di beberapa dokumen, koleksi, dan pecahan.
Mongodb’Transaksi S memiliki asal-usul simpul tunggal, bahkan dalam konteks pecahan tunggal. Mesin penyimpanan dan protokol replikasi diganti untuk jalur untuk transaksi. Diberikan di bawah ini adalah angka yang mewakili aplikasi eCommerce yang memiliki 2 klien MongoDB.

Di sini, klien 1 melakukan transaksi, dan klien 2 membaca catatan yang diperbarui oleh transaksi yang dipanggil oleh klien 1. Klien 1 memasukkan pesanan baru ke dalam koleksi pesanan dan memperbarui stok item yang dipesan (dengan asumsi pesanan berhasil dikirim). Sekarang, satu -satunya kekhawatiran menulis yang cocok untuk daya tahan data tinggi adalah mayoritas. Mayoritas berarti sebagian besar replika, saya.e., Mayoritas replika, adalah melakukan perubahan sebelum primer mengakui keberhasilan penulisan kepada klien.
Transaksi akan diblokir sampai setidaknya satu atau dua sekunder menarik pembaruan dari primer menggunakan replikasi. Proses ini membuat MongoDB’S Transaksi single-shard menulis sedikit lebih lambat dari noSQL transaksional lainnya.
Kesimpulan
Kami berjalan melalui menggunakan MongoDB di Java dan transaksi’S ciptaan, manajemen, dan alur kerja. Menggunakan transaksi Java MongoDB dalam database menjamin bahwa database akan memiliki keadaan yang konsisten setelah menjalankan sekelompok operasi.
MongoDB telah mengadopsi kerja transaksi dari pola transaksional yang paling akrab yang diimplementasikan di MySQL, Oracle, dan database relasional asam lainnya. Ironisnya, fitur pemodelan data MongoDB untuk data terkait disimpan bersama dalam satu dokumen memanfaatkan model dokumen yang tidak memerlukan transaksi multi-dokumen. Tetapi pengembang mengagumi fleksibilitas dalam memodelkan data mereka. Dengan demikian, ada fungsi transaksi di MongoDB.
Data Hevo, pipa data tanpa kode, dapat dengan mulus mentransfer data dari lautan luas 100+ sumber seperti MongoDB & Atlas Mongodb ke gudang data atau tujuan pilihan Anda untuk divisualisasikan dalam alat BI. Itu adalah layanan yang andal, sepenuhnya otomatis, dan aman yang tidak’T mengharuskan Anda untuk menulis kode apapun!
Jika Anda menggunakan MongoDB sebagai sistem manajemen basis data NoSQL Anda dan mencari alternatif tanpa repot untuk integrasi data manual, maka hevo dapat dengan mudah mengotomatiskan ini untuk Anda. Hevo, dengan integrasi yang kuat dengan 100+ sumber & alat BI (Termasuk 40+ sumber bebas), memungkinkan Anda untuk tidak hanya mengekspor & memuat data tetapi juga mengubah & memperkaya data Anda & membuatnya siap analisis dalam jiffy.
Ingin mengambil hevo untuk naik? Daftar untuk a Uji coba gratis 14 hari dan menyederhanakan proses integrasi data Anda. Lihat detail harga untuk memahami rencana mana yang memenuhi semua kebutuhan bisnis Anda.
Ceritakan tentang pengalaman Anda belajar tentang Transaksi Java Mongodb! Bagikan pemikiran Anda dengan kami di bagian komentar di bawah.
