Semua yang Perlu Anda Ketahui Tentang Klien MongoDB



Artikel ini akan memberi Anda pengetahuan terperinci dan komprehensif tentang Klien MongoDB dengan semua fitur dan Kegunaannya.

Jika Anda telah menjadi bentuk sistem manajemen database relasional untuk beberapa waktu sekarang, Anda mungkin pernah menemukan nama . Pertama kali diperkenalkan pada tahun 2009, hari ini mongoDb adalah salah satu sistem manajemen basis data relasional paling populer di industri. Alasan utama di balik popularitasnya yang gila-gilaan meskipun ada manajer perangkat lunak basis data relasional yang lebih tua seperti MySql yang ada di pasaran adalah banyaknya jumlah dan keserbagunaan yang dimilikinya. Penggunaan MongoDB menghilangkan banyak kebutuhan, salah satunya adalah kebutuhan untuk membuat database dan mendefinisikan tipe data setiap kali proyek baru dimulai. Agenda artikel klien MongoDB:





Tetapi untuk mencapai fungsionalitas maksimum dari MongoDB, seseorang harus terbiasa dengan klien MongoDB dan dalam artikel ini, kita akan membahas hal itu.

Prasyarat untuk Klien MongoDB

Agar artikel ini dapat sepenuhnya dibaca, Anda harus memenuhi prasyarat berikut terlebih dahulu.



Miliki IDE yang sudah ada di sistem Anda.
Java Development Kit atau JDK versi 1.8 dan yang lebih baru diinstal dengan JAVA_HOME dikonfigurasi dengan benar.
Docker atau MongoDB diinstal.
Apache Maven versi 3.5.3 dan yang lebih baru.

Arsitektur yang telah kami buat dan gunakan dalam panduan ini adalah salah satu yang paling sederhana. Saat dijalankan, pengguna dapat dengan mudah menambahkan data dan elemen dalam daftar, setelah itu secara otomatis akan diperbarui dalam database.

java mengubah double menjadi int

Logo Klien MongoDB



Bersamaan dengan ini, kami telah memastikan bahwa semua komunikasi antara data dan server ada di JSON dan semua data disimpan di MongoDB.

Mulai

Untuk memulai proyek ini, ikuti langkah-langkah yang diuraikan di bawah ini.

Langkah # 1: Membuat proyek di Maven

Langkah pertama adalah selalu membuat proyek baru dan untuk melakukan ini, gunakan kode berikut.

mvn io.quarkus: quarkus-maven-plugin: 0.22.0: create -DprojectGroupId = org.acme -DprojectArtifactId = using-mongodb-client -DclassName = 'org.acme.rest.json.FruitResource' -Dpath = '/ fruits '-Dextensions =' resteasy-jsonb, mongodb-client '

Saat Anda menjalankan perintah di atas, IDE akan mengimpor klien JSON-B, MongoDb, serta RESTEasy / JAX-RS ke sistem Anda.

Lanjutkan dengan Langkah 2.

Langkah # 2: Menambahkan layanan istirahat JSON pertama Anda

Untuk melakukan ini, gunakan kode di bawah ini. package org.acme.rest.json import java.util.Objects public class Buah {private String name private String description public Fruit () {} public Fruit (String name, String description) {this.name = name this.description = description } public String getName () {return name} public void setName (String name) {this.name = name} public String getDescription () {return description} public void setDescription (String description) {this.description = description} @Override public boolean sama dengan (Object obj) {if (! (obj instanceof Fruit)) {return false} Buah lain = (Buah) obj kembali Objects.equals (other.name, this.name)} @Override public int hashCode () {return Objects.hash (nama.ini)}}

Dengan contoh di atas, kita sudah membuat Fruit terlebih dahulu yang nantinya akan digunakan dalam program.

Selanjutnya kita perlu membuat file org.acme.rest.json.FruitService yang akan menjadi lapisan pengguna aplikasi kita. Untuk melakukan ini, gunakan kode di bawah ini.

paket org.acme.rest.json impor com.mongodb.client.MongoClient import com.mongodb.client.MongoCollection import com.mongodb.client.MongoCursor import org.bson.Document import javax.enterprise.context.ApplicationScoped import javax.inject .Inject import java.util.ArrayList import java.util.List @ApplicationScoped public class FruitService {@Inject MongoClient mongoClient public List list () {List list = new ArrayList () MongoCursor cursor = getCollection (). Find (). Iterator ( ) coba {while (cursor.hasNext ()) {Document document = cursor.next () Fruit fruit = new Fruit () fruit.setName (document.getString ('name')) fruit.setDescription (document.getString ('description ')) list.add (fruit)}} akhirnya {cursor.close ()} return list} public void add (Fruit fruit) {Document document = new Document () .append (' name ', fruit.getName ()) .append ('description', fruit.getDescription ()) getCollection (). insertOne (document)} private MongoCollection getCollection () {return mongoClient.getDatabase ('fruit'). getCol lection ('fruit')}} Sekarang kita perlu mengedit kelas org.acme.rest.json.FruitResource agar sesuai dengan kebutuhan kita. Untuk melakukan ini, gunakan kode di bawah ini. @Path ('/ fruits') @Produces (MediaType.APPLICATION_JSON) @Consumes (MediaType.APPLICATION_JSON) kelas publik FruitResource {@Inject FruitService fruitService @GET public List list () {return fruitService.list ()} @POST daftar publik tambahkan (Buah buah) {fruitService.add (buah) daftar kembali ()}}

Lanjutkan dengan Langkah 3.

urutkan angka c ++

Langkah # 3: Konfigurasi database mongoDb

Sintaks serta kode standar untuk mengkonfigurasi database mongoDb seperti yang diberikan di bawah ini.

# konfigurasikan klien mongoDB untuk sekumpulan replika dua node quarkus.mongodb.connection-string = mongodb: // mongo1: 27017, mongo2: 27017

Dalam kasus kami, kami akan menggunakan kode berikut untuk mengkonfigurasi database.

# konfigurasikan klien mongoDB untuk satu set replika dua node quarkus.mongodb.connection-string = mongodb: // localhost: 27017

Lanjutkan dengan Langkah 4.

Langkah # 4: Menjalankan database MongoDB yang telah dikonfigurasi

Langkah selanjutnya adalah menjalankan database MongoDB yang baru saja kita buat. Untuk melakukan ini, gunakan kode di bawah ini.

buruh pelabuhan menjalankan -ti --rm -p 27017: 27017 mongo: 4.0

Lanjutkan dengan Langkah 5.

Langkah # 5: Membuat ujung depan

Sekarang semua pekerjaan di bagian belakang aplikasi telah selesai, mari kita lihat kode yang digunakan untuk membuat kode bagian depan aplikasi kita.

paket org.acme.rest.json impor io.quarkus.mongodb.ReactiveMongoClient impor io.quarkus.mongodb.ReactiveMongoCollection import org.bson.Document import javax.enterprise.context.ApplicationScoped import javax.inject.Inject import java.util.List import java.util.concurrent.CompletionStage @ApplicationScoped public class ReactiveFruitService {@Inject ReactiveMongoClient mongoClient public CompletionStage list () {return getCollection (). find (). map (doc -> {Fruit fruit = new Fruit () fruit.setName ( doc.getString ('name')) fruit.setDescription (doc.getString ('description')) return fruit}). toList (). run ()} public CompletionStage add (Buah buah) {Document document = new Document () .append ('name', fruit.getName ()) .append ('description', fruit.getDescription ()) return getCollection (). insertOne (document)} private ReactiveMongoCollection getCollection () {return mongoClient.getDatabase ('fruit' ) .getCollection ('buah')}} paket org.acme.rest.json import javax.inject.Inject import javax.ws.rs. * i mport javax.ws.rs.core.MediaType import java.util.List import java.util.concurrent.CompletionStage @Path ('/ reactive_fruits') @Produces (MediaType.APPLICATION_JSON) @Consumes (MediaType.APPLICATION_JSON) kelas publik ReactiveFruitResource { @Inject ReactiveFruitService fruitService @GET public CompletionStage list () {return fruitService.list ()} @POST public CompletionStage tambahkan (Buah buah) {fruitService.add (buah) daftar kembali ()}}

Dalam contoh di atas, kami memanfaatkan klien mongoDb reaktif untuk memfasilitasi pembentukan ujung depan.

Lanjutkan dengan Langkah 6.

Langkah # 6: Menyederhanakan klien mongoDb menggunakan codec BSON

Untuk melakukan ini, gunakan kode di bawah ini.

paket org.acme.rest.json.codec import com.mongodb.MongoClient import org.acme.rest.json.Fruit import org.bson. * import org.bson.codecs.Codec import org.bson.codecs.CollectibleCodec import org .bson.codecs.DecoderContext import org.bson.codecs.EncoderContext import java.util.UUID kelas publik FruitCodec mengimplementasikan CollectibleCodec {private final Codec documentCodec public FruitCodec () {this.documentCodec = MongoClient.getDefaultCodecRegistry (). get (Document.class )} @Override public void encode (Penulis BsonWriter, Buah buah, EncoderContext encoderContext) {Document doc = new Document () doc.put ('name', fruit.getName ()) doc.put ('description', fruit.getDescription ()) documentCodec.encode (writer, doc, encoderContext)} @Override public Class getEncoderClass () {return Fruit.class} @Override public Fruit generateIdIfAbsentFromDocument (Fruit document) {if (! documentHasId (document)) {document.setId ( UUID.randomUUID (). ToString ())} return document} @Override public boolean documentHasId ( Dokumen buah) {return document.getId ()! = Null} @Override public BsonValue getDocumentId (Dokumen buah) {return new BsonString (document.getId ())} @Override public Fruit decode (BsonReader reader, DecoderContext decoderContext) {Dokumen dokumen = documentCodec.decode (reader, decoderContext) Buah buah = Buah baru () if (document.getString ('id')! = null) {fruit.setId (document.getString ('id'))} fruit.setName (document .getString ('name')) fruit.setDescription (document.getString ('description')) return fruit}}

Sekarang kita akan menggunakan CodecProvider untuk menautkan ini ke kelas Buah yang sudah ada.

paket org.acme.rest.json.codec impor org.acme.rest.json.Fruit impor org.bson.codecs.Codec impor org.bson.codecs.configuration.CodecProvider impor org.bson.codecs.configuration.CodecRegistry kelas publik FruitCodecProvider mengimplementasikan CodecProvider {@Override public Codec get (Class clazz, CodecRegistry registry) {if (clazz == Fruit.class) {return (Codec) new FruitCodec ()} return null}}

Lanjutkan dengan Langkah 7.

Langkah # 7: Kode Akhir

Kode terakhir untuk aplikasi ini, akan terlihat seperti ini.

paket org.acme.rest.json impor com.mongodb.client.MongoClient impor com.mongodb.client.MongoCollection impor com.mongodb.client.MongoCursor impor javax.enterprise.context.ApplicationScoped impor javax.inject.Inject impor java.util .ArrayList import java.util.List @ApplicationScoped public class CodecFruitService {@Inject MongoClient mongoClient public List list () {List list = new ArrayList () MongoCursor cursor = getCollection (). Find (). Iterator () try {while (cursor .hasNext ()) {list.add (cursor.next ())}} akhirnya {cursor.close ()} daftar kembali} public void add (Buah buah) {getCollection (). insertOne (fruit)} private MongoCollection getCollection ( ) {return mongoClient.getDatabase ('fruit'). getCollection ('fruit', Fruit.class)}}

Kesimpulan

kebalikan dari angka di java

Sekarang Anda tahu cara mengkonfigurasi dan menggunakan klien MongoDB di sistem Anda. Silakan coba kode ini di sistem Anda dan beri tahu kami pengalaman Anda.

Ringkasan Artikel

Pelajari semua tentang klien MongoDB dan bagaimana Anda dapat mengonfigurasi hal yang sama di sistem Anda untuk berbagai kegunaan. Baca terus untuk mengetahui lebih lanjut.

Dengan ini, kita sampai pada akhir ' Klien MongoDB ' artikel.