Viskas, ką reikia žinoti apie „MongoDB Client“

Šis straipsnis suteiks jums išsamių ir išsamių žinių apie „MongoDB Client“ su visomis jo funkcijomis ir naudojimo būdais.

Jei jau kurį laiką esate bet kokios formos reliacinės duomenų bazės valdymo sistema, tikriausiai susidūrėte su . Pirmą kartą pristatyta 2009 metais, šiandien „mongoDb“ yra viena populiariausių reliacinių duomenų bazių valdymo sistemų pramonėje. Nepaisant beprotiško populiarumo, nepaisant to, kad rinkoje yra vyresnių reliacinių duomenų bazių programinės įrangos valdytojų, tokių kaip „MySql“, priežastis yra platus skaičius ir didelis universalumas, kurį jis pateikia į lentelę. „MongoDB“ naudojimas pašalina daugelį poreikių, vienas iš jų yra poreikis sukurti duomenų bazę ir duomenų tipo apibrėžimas kiekvieną kartą, kai pradedamas naujas projektas. Straipsnio „MongoDB“ darbotvarkė:





Tačiau norint pasiekti maksimalų „MongoDB“ funkcionalumą, reikia būti susipažinusiam su „MongoDB“ klientu ir šiame straipsnyje aptarsime būtent tai.

Būtinos sąlygos „MongoDB Client“

Norėdami, kad šis straipsnis būtų visiškai parengtas, pirmiausia turėsite įvykdyti šias prielaidas.



IDE jau turi būti jūsų sistemoje.
„Java Development Kit“ arba JDK 1.8 ir naujesnė versija, įdiegta tinkamai sukonfigūravus JAVA_HOME.
Įdiegta „Docker“ arba „MongoDB“.
Apache Maven versija 3.5.3 ir naujesnė.

Šiame vadove sukurta ir naudojama architektūra yra viena iš paprasčiausių. Vykdydamas vartotojas gali lengvai įtraukti duomenis ir elementus į sąrašą, o po to jis bus automatiškai atnaujintas duomenų bazėje.

„MongoDB“ kliento logotipas



Be to, mes įsitikinome, kad visas duomenų ir serverio ryšys yra JSON ir visi duomenys yra saugomi „MongoDB“.

kas yra konstruktorius pitone

Pradžia

Norėdami pradėti šį projektą, atlikite toliau nurodytus veiksmus.

1 žingsnis: Sukurkite projektą „Maven“

Pirmas žingsnis visada yra naujo projekto sukūrimas ir, norint tai padaryti, pasinaudokite šiuo kodu.

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

Kai paleisite aukščiau nurodytą komandą, IDE importuos JSON-B, MongoDb ir RESTEasy / JAX-RS klientus į jūsų sistemą.

Tęskite 2 žingsnį.

2 žingsnis: pridėkite savo pirmąją JSON poilsio paslaugą

Norėdami tai padaryti, naudokite žemiau esantį kodą. paketas org.acme.rest.json importuoti java.util.objects public class Vaisiai {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} @Paisyti viešą loginė reikšmė lygi (Object obj) {if (! (vaisiaus obj egzempliorius)) {return false} Vaisius kitas = (Fruit) obj return Objects.equals (other.name, this.name)} @Paisyti viešąjį int hashCode () {return Objects.hash (this.name)}}

Pateikdami pirmiau pateiktą pavyzdį, pirmiausia sukūrėme „Vaisius“, kuris vėliau bus naudojamas programoje.

Tada turime sukurti failą org.acme.rest.json.FruitService, kuris bus mūsų programos vartotojo sluoksnis. Norėdami tai padaryti, naudokite žemiau esantį kodą.

paketas org.acme.rest.json importuoti com.mongodb.client.MongoClient importuoti com.mongodb.client.MongoCollection importuoti com.mongodb.client.MongoCursor importuoti org.bson.Document importuoti javax.enterprise.context.ApplicationScoped importuoti javax.inject .Inject importuoti java.util.ArrayList importuoti java.util.List @ApplicationScoped viešąją klasę „FruitService“ {@Inject MongoClient mongoClient public List list () {List list = new ArrayList () MongoCursor cursor = getCollection (). Find (). Iterator ( ) pabandykite {while (cursor.hasNext ()) {Document document = cursor.next () Vaisių vaisiai = new Fruit () fruit.setName (document.getString ('name')) fruit.setDescription (document.getString ('description ')) list.add (fruit)}} pagaliau {cursor.close ()} return list} public void add (Fruit fruit) {Document document = new Document () .append (' name ', fruit.getName ()) .append ('description', fruit.getDescription ()) getCollection (). insertOne (dokumentas)} privatus MongoCollection getCollection () {return mongoClient.getDatabase ('vaisius'). getCol lection ('fruit')}} Dabar turime redaguoti „org.acme.rest.json.FruitResource“ klasę, kad ji atitiktų mūsų poreikius. Norėdami tai padaryti, naudokite žemiau esantį kodą. @Path ('/ fruits') @Produces (MediaType.APPLICATION_JSON) @Cumsumes (MediaType.APPLICATION_JSON) public class FruitResource {@Inject FruitService fruitService @GET public List list () {return fruitService.list ()} @POST public List add (Vaisių vaisiai) {fruitService.add (vaisių) grąžinimo sąrašas ()}}

Tęskite 3 žingsnį.

3 žingsnis: konfigūruokite „mongoDb“ duomenų bazę

Sintaksė ir standartinis „mongoDb“ duomenų bazės konfigūravimo kodas yra tokie, kaip nurodyta toliau.

# sukonfigūruokite „mongoDB“ klientą dviejų mazgų „quarkus“ kopijos rinkiniui. mongodb.connection-string = mongodb: // mongo1: 27017, mongo2: 27017

Mūsų atveju konfigūruodami duomenų bazę naudosime šį kodą.

# konfigūruokite „mongoDB“ klientą dviejų mazgų „quarkus“ kopijos rinkiniui. mongodb.connection-string = mongodb: // localhost: 27017

Tęskite 4 žingsnį.

4 žingsnis: Paleiskite sukonfigūruotą „MongoDB“ duomenų bazę

Kitas žingsnis - paleisti ką tik sukurtą „MongoDB“ duomenų bazę. Norėdami tai padaryti, pasinaudokite toliau pateiktu kodu.

iso 9000 ir šešios sigmos
dokininko važiavimas -ti --rm -p 27017: 27017 mongo: 4.0

Toliau eikite su 5 žingsniu.

5 žingsnis: Padarykite priekinį galą

Dabar, kai atliktas visas programos programinės įrangos darbas, pažvelkime į kodą, naudojamą mūsų programos priekinei daliai koduoti.

paketas org.acme.rest.json importuoti io.quarkus.mongodb.ReactiveMongoClient importuoti io.quarkus.mongodb.ReactiveMongoCollection importuoti org.bson.Document importuoti javax.enterprise.context.ApplicationScoped importuoti javax.inject.Inject importuoti java.ut importuoti 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 (Fruit fruit) {Dokumento dokumentas = naujas dokumentas () .append ('vardas', fruit.getName ()) .append ('description', fruit.getDescription ()) return getCollection (). insertOne (dokumentas)} privatus ReactiveMongoCollection getCollection () {return mongoClient.getDatabase ('vaisius' ) .getCollection ('fruit')}} paketas org.acme.rest.json importuoti javax.inject.Inject importuoti javax.ws.rs. * i mport javax.ws.rs.core.MediaType importuoti java.util.List importuoti java.util.concurrent.CompletionStage @Path ('/ reactive_fruits') @Produces (MediaType.APPLICATION_JSON) @Consumes (MediaType.APPLICATION_JSON) public @Inject ReactiveFruitService fruitService @GET public CompletionStage list () {return fruitService.list ()} @POST public CompletionStage add (Fruit fruit) {fruitService.add (fruit) return list ()}}

Ankstesniame pavyzdyje mes naudojame reaktyvus „mongoDb“ klientas, palengvinantis priekinės dalies formavimąsi.

Toliau eikite su 6 žingsniu.

kaip naudoti galią java

6 žingsnis: „MongoDb“ kliento supaprastinimas naudojant BSON kodeką

Norėdami tai padaryti, pasinaudokite toliau pateiktu kodu.

paketas org.acme.rest.json.codec importuoti com.mongodb.MongoClient importuoti org.acme.rest.json.Fruit importuoti org.bson. * importuoti org.bson.codecs.Codec importuoti org.bson.codecs.CollectibleCodec importuoti org .bson.codecs.DecoderContext importuoti org.bson.codecs.EncoderContext importuoti java.util.UUID viešąją klasę „FruitCodec“ įgyvendina „CollectibleCodec“ {private final Codec documentCodec public FruitCodec () {this.documentCodec = MongoClient.getDefault (getDefault )} @Paisyti viešąjį negaliojančią kodą („BsonWriter“ rašytojas, „Fruit fruit“, „EncoderContext encoderContext“) {Dokumentas doc = naujas dokumentas () doc.put ('vardas', vaisius.getName ()) doc.put ('aprašymas', fruit.getDescription ()) documentCodec.encode (rašytojas, doc, encoderContext)} @Paisyti viešąją klasę getEncoderClass () {return Fruit.class} @Override public Fruit generuotiIdIfAbsentFromDocument (Vaisių dokumentas) {if (! documentHasId (dokumentas)) {document.setId ( UUID.randomUUID (). ToString ())} grąžinti dokumentą} @Paisyti viešąjį loginį dokumentąHasId ( Vaisių dokumentas) {return document.getId ()! = Null} @ Panaikinti viešą „BsonValue“ getDocumentId („Vaisių dokumentas“) {grąžinti naują „BsonString“ (document.getId ())} @ Peržengti viešą vaisių dekodą („BsonReader“ skaitytuvas, „DecoderContext decoderContext“) {Dokumento dokumentas = documentCodec.decode (reader, decoderContext) Vaisių vaisiai = new Fruit () if (document.getString ('id')! = null) {fruit.setId (document.getString ('id'))} fruit.setName (dokumentas .getString ('vardas')) fruit.setDescription (document.getString ('description')) grąžina vaisių}}

Dabar mes naudosime „CodecProvider“, kad susietume tai su jau esančia vaisių klase.

paketas org.acme.rest.json.codec importuoti org.acme.rest.json.Vaisių importas org.bson.codecs.Codec importuoti org.bson.codecs.configuration.CodecProvider importuoti org.bson.codecs.configuration.CodecRegistry viešąją klasę „FruitCodecProvider“ įgyvendina „CodecProvider“ {@Orride public Codec get (Class clazz, CodecRegistry register) {if (clazz == Fruit.class) {return (Codec) new FruitCodec ()} return null}}

Tęskite 7 veiksmą.

7 žingsnis: Galutinis kodas

Galutinis šios programos kodas atrodys maždaug taip.

paketas org.acme.rest.json importuoti com.mongodb.client.MongoClient importuoti com.mongodb.client.MongoCollection importuoti com.mongodb.client.MongoCursor importuoti javax.enterprise.context.ApplicationScoped importuoti javax.inject.Inject importuoti java.util .ArrayList importuoti java.util.List @ApplicationScoped public class CodecFruitService {@Inject MongoClient mongoClient public List list () {List list = new ArrayList () MongoCursor cursor = getCollection (). Find (). Iterator () try {while (cur .hasNext ()) {list.add (cursor.next ())}} pagaliau {cursor.close ()} grąžinti sąrašą} public void add (vaisių vaisiai) {getCollection (). insertOne (vaisiai)} privatus „MongoCollection getCollection“ ( ) {grąžinti mongoClient.getDatabase ('vaisiai'). getCollection ('vaisiai', Fruit.class)}}

Išvada

Dabar jūs žinote, kaip sukonfigūruoti ir naudoti „MongoDB“ klientą savo sistemoje. Išbandykite šiuos kodus savo sistemoje ir praneškite mums apie savo patirtį.

Straipsnio santrauka

Sužinokite viską apie „MongoDB“ klientą ir kaip tą patį sukonfigūruoti savo sistemoje įvairiems tikslams. Skaitykite toliau, kad sužinotumėte daugiau.

Tuo mes artėjame prie pabaigos ' „MongoDB“ klientas ' straipsnis.