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

Tutorial MongoDB:Menghubungkan ke MongoDB di Scala

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.mongodbmongo-scala-driver1.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 Tweet

Mari 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 -

Pengaturan
val: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 menambahkanList(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.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb $lookup Tidak bekerja dengan _id

  2. Mengapa MongoDB Begitu Cepat?

  3. Adakah alasan terperinci dan spesifik untuk Mengapa MongoDB jauh lebih cepat daripada SQL DB?

  4. Node js batas populasi luwak

  5. Banyak koneksi luwak