MongoDB memiliki set driver yang ekstensif untuk banyak bahasa pemrograman. Dalam tutorial berikut, kami akan menunjukkan kepada Anda berbagai nuansa koneksi ke MongoDB menggunakan driver Scala-nya.
Penginstalan Driver
Driver Scala MongoDB dapat ditambahkan ke proyek Anda menggunakan ketergantungan berikut -
org.mongodb mongo-scala-driver 1.0.1 Anda juga dapat mengunduh driver MongoDB Scala dari halaman githubnya.
Scala Driver untuk MongoDB, seperti Java, hadir dengan beberapa kelas untuk memfasilitasi koneksi ke instance MongoDB.
Scala Driver untuk MongoDB, seperti Java, hadir dengan beberapa kelas untuk memfasilitasi koneksi ke instans MongoDB. Klik Untuk TweetMari lakukan langkah demi langkah ini:
Koneksi
Koneksi ke instans MongoDB dapat diatur menggunakan klien Mongo. MongoClient adalah kelas yang dapat digunakan untuk mengelola koneksi ke MongoDB. Cara termudah untuk membuat koneksi adalah dengan menggunakan -
klien val:MongoClient=MongoClient(":27017") Pilihan seperti otentikasi, nomor port dll dapat diatur dalam string koneksi. Misalnya, opsi kumpulan replika dapat ditetapkan sebagai
/?replicaSet=rs0
. Untuk daftar lengkap opsi, kunjungi opsi URI string koneksi.Atau, kelas MongoClientSettings() dapat digunakan untuk mengontrol perilaku Klien Mongo. Kelas ClusterSettings digunakan untuk menambahkan pengaturan cluster ke kelas Mongoclientsettings. Koneksi sederhana menggunakan ketiga kelas ini dapat dilakukan sebagai berikut -
val clusterSettings:ClusterSettings=ClusterSettings.builder().hosts(List(newServerAddress("mongodb2.example.com:27345"),newServerAddress("mongodb1.example.com:20026")).asJava).build( )pengaturan val:<MongoClientSettings=MongoClientSettings.builder().clusterSettings(clusterSettings)).build()val mongoClient:MongoClient=MongoClient(pengaturan)Sambungan secara default menggunakan AsynchronousSocketChannel dari JDK sistem Anda , jika Anda menggunakan SSL atau memiliki versi JDK lebih awal dari 1.7, Anda harus menggunakan Netty seperti yang dijelaskan di bagian SSL.
SSL
Koneksi Anda ke MongoDB dapat diamankan menggunakan SSL. Postingan blog kami yang lain ‘Mengamankan cluster dengan SSL‘ menjelaskan pentingnya SSL.
Untuk memvalidasi sertifikat yang diberikan oleh server MongoDB, Anda perlu menambahkan CA otoritas penandatanganan ke penyimpanan kepercayaan sistem.
Anda juga perlu menambahkan properti untuk driver agar dapat menggunakan pustaka Netty alih-alih AsynchronousSocketChannel untuk tujuan ini. Anda perlu mengunduh toples Netty dan menambahkannya ke proyek Anda saat ini karena ketergantungan Scala tidak mengunduhnya. Anda juga memerlukan pernyataan impor berikut -
import org.mongodb.scala.connection.{NettyStreamFactoryFactory,SslSettings}Koneksi ke MongoDB menggunakan SSL dapat dilakukan sebagai berikut -
pengaturan val:MongoClientSettings=MongoClientSettings.builder().clusterSettings(clusterSettings).sslSettings(SslSettings.builder().enabled(true).build()).streamFactoryFactory(NettyStreamFactoryFactory()).build()Jika Anda mengalami masalah saat menyambung ke server, maka nama host pada sertifikat SSL server Anda mungkin berbeda dari yang Anda tentukan saat membangun MongoClient. Anda dapat menonaktifkan pengaturan ini dengan menggunakan.
.invalidHostNameAllowed(true)
di Pengaturan SSL Anda.Otentikasi
Anda dapat menggunakan kelas MongoCredential untuk menambahkan kredensial ke MongoClientSettings Anda. Penggunaan khas kelas MongoCredentials adalah sebagai berikut -
Pengaturanval:MongoClientSettings =MongoClientSettings.builder().clusterSettings(clusterSettings).credentialList(credential).sslSettings(SslSettings.builder().enabled(true).build()).streamFactoryFactory(NettyStreamFactoryFactory()).build ()Perhatikan bahwa ketika Anda telah menambahkan lebih dari satu host dalam pengaturan cluster maka Anda dapat menambahkan kredensial Anda sebagai Daftar. Misalnya, Anda dapat menambahkan
List(credential1,credential2).asJava
untuk dua host.Menyatukan semuanya di sini adalah kode lengkap untuk menghubungkan ke set replika dengan SSL di Scala -
import com.mongodb.MongoCredentialimport org.mongodb.scala.bson.collection.mutable.Documentimport org.mongodb.scala.{Selesai, FindObservable, MongoClient, MongoClientSettings, MongoCollection, MongoDatabase, Observable,Observer, ReadPreference, Preferensi org.mongodb.scala.connection.ClusterSettingsimport com.mongodb.MongoCredential._import java.util.logging.{Level, Logger}import org.mongodb.scala.connection.{NettyStreamFactoryFactory,SslSettings}impor scala.collection.JavaConverters {_objectnewworld def main(args:Array[String]):Unit ={val mongoLogger:Logger =Logger.getLogger("com.mongodb")mongoLogger.setLevel(Level.SEVERE);val clusterSettings:ClusterSettings =ClusterSettings.builder().hosts (Daftar(New ServerAddress("example.com:27345"), new ServerAddress("example.com:20026")).asJava).build()val user:String ="testuser"val databasename:String ="scalatest" val password:Array[Char] ="".toCharArrayval kredensial:MongoCredential =createCredent pengaturan ial(user, databasename, password)val:MongoClientSettings =MongoClientSettings.builder().clusterSettings(clusterSettings).credentialList(List(credential,credential).asJava).sslSettings(SslSettings.builder().enabled(true).build ()).streamFactoryFactory(NettyStreamFactoryFactory()).build()val mongoClient:MongoClient =MongoClient(settings)val database:MongoDatabase =mongoClient.getDatabase("scalatest")mongoClient.close()}} Menguji Koneksi Anda
Driver Scala Halaman memulai memiliki contoh bagaimana Anda dapat menguji koneksi Anda.
Referensi:
Memulai scala menggunakan MongoDB
Mongo Scala API
Beri tahu kami jika Anda mengalami masalah saat menyambungkan ke MongoDB menggunakan driver Scala-nya. Kami menawarkan opsi terkelola untuk semua kebutuhan MongoDB Anda.