Kuidas veebirakendusi luua MongoDB abil

Lang L: none (table-of-contents):

Anonim

MongoDB-d kasutavad veebirakendused - MongoDB on üks parimaid tööriistu tõsiste veebiarendajate jaoks ja see MongoDB-d käsitlev artikkel käsitleb kõike, mida peate teadma MongoDB-iga veebirakenduste loomiseks. Kuid enne kui alustame, vaatame lähemalt populaarset tööriista.

Kujutise allikas: pixabay.com

Mis on MongoDB?

Kõige lihtsamalt öeldes on MongoDB platvormideülene dokumendile orienteeritud NoSQL andmebaas, mis kasutab JSON-taolisi dokumente, kasutades dünaamilisi skeeme, mida nimetatakse BSON-dokumentideks, selle asemel et järgida tavapärast relatsiooniandmebaasi (RDB) struktuuri.

See on palju termineid, mida te ehk ei tunne, nii et kõigepealt murrame need kokku.

Nüüd toimib dokumendikeskne andmebaas põhikontseptsioonis, mille kohaselt andmedokument sisaldab metaandmeid, mis on väärtused, mida kasutatakse andmete tüübi tuvastamiseks ning vajaduse korral andmete salvestamise ja hankimise lihtsustamiseks. Vaatame näiteks kahte järgmist andmerida:

  • John Hancock
  • Arhitekt

Neile kahele reale vaatamine peaks andma teile ettekujutuse nende andmete kohta: inimese nimi ja amet. Masin ei suuda seda vahet teha. Sellele tuleb öelda andmete tüüp.

RDB-s saab seda tüüpi salvestada võtmeväärtuse hoidlasse, mis on dokumendist endast eraldi. Dokumendile orienteeritud andmebaasi abil saate aga koodi sisestades kindlaks määrata andmete tüübi. Nii et kirjutate lõpuks natuke nii:

  • John Hancock
  • Arhitekt

Ja sinna sa lähed; nüüd on andmete tüüp dokumendis täpselt määratletud. See annab paindlikkuse, mida RDB-des pole, seetõttu on dokumendile orienteeritud andmebaasid veebirakenduste jaoks nii populaarsed.

Lõppude lõpuks muudetakse veebirakendusi regulaarselt. Muidugi, RDB-del on ka oma eelised ja dokumendile orienteeritud andmebaasid ei ole ideaalsed igas olukorras, kuid ärgem jätkem kõrvale.

Liigume JSON, BSON ja skeemide peale. JSON viitab JavaScripti objektide märkimisele, kuid tegelikult on see avatud standardne andmevorming, mis võib töötada ka muude keeltega peale JavaScripti.

Skeem on andmebaasi struktuur, mis määratletakse RDB-de puhul tabelitena. Kuna dokumendile orienteeritud andmebaasid selliseid tabeleid ei kasuta, on need sisuliselt struktuurivabad või skeemita.

Mis puutub BSON-i, siis see tähendab lihtsalt binaarset JSON-i ja see on MongoDB andmebaasi andmesalvestusvorming. See on kõik, mida peate selles etapis teadma.

Vaatame nüüd põhitõdesid, miks MongoDB on hea valik veebirakenduste loomiseks:

Miks minna MongoDB-le?

MongoDB populaarsuse veebirakenduste loomisel on mitu põhjust. MongoDB pole täiuslik tööriist; kaugel sellest, tegelikult. MongoDB-l on mitmeid väljakutseid ja see pole kõigi veebirakenduste jaoks sobiv. Kuid MongoDB töötab veebirakenduste osas hästi järgmistel põhjustel:

  • MongoDB on skeemitu

MongoDB andmebaasis on dokumendikogu, kus igal dokumendil on oma suurus, sisu ja väljade arv. Võite minna tagasi põhiväärtusi muuta või neid soovi korral lisada ja kustutada.

See teeb ka ühe objekti struktuuri selgeks ja arusaadavaks ning ka MongoDB-d on vajadusel lihtne mastaapida.

  • MongoDB on üldotstarbeline

Andmebaasi saab kasutada paljude veebirakenduste jaoks, sealhulgas klientide andmete haldamiseks, sisuhalduseks, andmekeskusteks, mobiilirakendusteks, asjade Internetiks, Big Dataks, toote- ja varakataloogideks ning andmebaasina teenusena.

  • MongoDB toetab auto-shardingut

Relatsiooniandmebaasid on tavaliselt vertikaalsuunalised, kus kogu server majutab ühte serverit. See võib piirata töö ulatust, lahenduseks on horisontaalne lisamine ja serverite lisamine, selle asemel et koondada mahud ühte serverisse.

Andmebaasi jagamine toimub selle vältimiseks ja selleks, et riistvara toimiks ühe serverina. Arendajad peavad juurutama masinate vahel mitu relatsiooniandmebaasi ja arendama andmete levitamiseks, päringuteks ja tulemuste koondamiseks rakenduskoodi.

MongoDB ja muud NoSQL-i andmebaasid toetavad automaatset ühiskasutust, mis tähendab, et nad jaotavad andmed automaatselt erinevate serverite vahel laiali, ilma et rakendusele oleks teada kompositsiooni.

MongoDB on eriti kasulik pilvandmetöötluse korral. Arendajana ei pea te veebirakenduste toetamiseks ehitama kalleid ja keerulisi platvorme, vaid võite keskenduda tegeliku rakenduse koodi kirjutamisele.

Veel mõned mõisted, et õppida MongoDB-st

Olgu, nii et nüüd oleme MongoDB põhitõed ja eelised katnud. Enne kui käsi määrdub, vaatame veel mõnda mõistet, mis peaksid teile tuttavad olema:

  • Andmebaas: andmebaas sisaldab kogusid ja igal andmebaasil on failisüsteemis oma failid. Tüüpilisel MongoDB serveril on mitu andmebaasi.
  • Kogumik: MongoDB-dokumentide rühma nimetatakse kogumiks ja see on samaväärne tabeliga RDB-des. Ühel andmebaasil on kogu ja igal dokumendil on erinevad väljad. Erinevalt tahvelarvutitest pole kogudel skeemi.
  • Dokument: dokument on hunnik võtmeväärtuste paare ja sellel on dünaamiline skeem, mis tähendab, et sama kollektsiooni erinevatel dokumentidel võivad olla erinevad väljade komplektid ja struktuurid.

    Soovitatavad kursused

  • Rubiini silumiskursused
  • PHP MySQL programmeerimiskoolitus
  • Veebipõhine VB.NET programmeerimiskoolitus
  • ITILi fondi koolituskursus

Veebirakenduste loomine

Selle konkreetse MongoDB juhendi jaoks loodud veebirakendused on RSS-koguja nagu Google Reader. Veebirakendustel on kaks põhikomponenti: REST API ja Feed Grabber.

REST-i API mõistmiseks peate esmalt natuke teadma MEAN-i virnast. Söödahaaraja koodi võib leida isegi githubi kataloogist.

MEAN-i virna mõistmine:

MEAN-i virn tähendab järgmist:

  1. MongoDB, mis on veebirakenduse jaoks kasutatav andmebaas
  2. js, mis on kerge veebirakenduse raamistik
  3. js, mis on raamistik JavaScripti ja HTML5 rikaste veebirakenduste loomiseks
  4. js, mis on serveripoolne JavaScripti tõlk

Siin käsitletavate veebirakenduste jaoks luuakse HTML-i kasutajaliidese asemel REST API. Esindusliku oleku ülekandmise (REST) ​​API on XML-põhistele API-dele kergem alternatiiv ja seda saab kasutada mis tahes liidesetüübi alusena, hoolimata sellest, et tal pole kasutajaliidest.

REST funktsioonid kliendi-serveri mudelis koos sellega, et klient saadab HTTP serverile HTTP käsklused koos muutuva parameetriga, mis on kodeeritud toimingu sihtobjekti kirjeldavasse URL-i. Seejärel vastab server JSON-i ja tulemuse koodiga.

Nüüd reageerivad MongDB ja JavaScript mõlemad JSON-iga hästi, muutes MEAN-i virna eriti sobivaks veebirakenduste jaoks.

CRUD

Lühend CRUD tähistab loomist, lugemist, värskendamist ja kustutamist. Need on tavalised andmebaasitoimingud, mis tõlgitakse HTTP-s postituse, hankimise, panemise ja kustutamise teel.

REST API loomine

Alustame REST API loomisega, veebirakenduste loomise aluse väljatöötamisega. Rakendus võib olla veebipõhine või mõeldud Androidi, iOS-i või muude konkreetsete platvormide jaoks. Alustuseks loetleme asjad, mida rakendus saab teha:

  1. Luba kasutajatel konto luua
  2. Luba neil vooge tellida või tellimusest loobuda
  3. Andke neile võimalus lugeda ja märkida voo kandeid loetuks või lugematuks
  4. Jälgige RSS-vooge jälgimiseks
  5. Salvestage kasutajateave nende vastavatel kontodel
  6. Kasutajate voo tellimuste jälgimine
  7. Jälgige kasutaja poolt juba loetud voo kirjet

Andmete modelleerimine

Nõuetele tuginedes vajavad veebirakendused teabe haldamiseks nelja kogu:

  1. Kasutajate kogu
  2. Söödakogu
  3. Kasutaja voo kannete kaardistuskogu
  4. Voo sissekande kogu

Siit leiate lähemalt igaühe kohta:

  • Voogude kogu:

Järgmine JSON on hea näide vookogu modelleerimiseks:

( "_id, ObjectId("523b1153a2aa6a3233a91412")

"requiresAuthentication": false,

"permanentlyRemoved": false,

"feedURL": "http://feeds.reuters.com/reuters/topNews",

"title": "Reuters",

"bozoBitSet": false,

"enabled": true,

"etag": "4bL78iLSZud2iXd/vd10mYC32BE",

"link": "http://www.reuters.com/ ",

"permanentRedirectURL": null,

"description": "Reuters news feed” )

Ülaltoodud JSON-dokument on Reutersi RSS-kanal, jälgides veebisaidil avaldatud uusimate uudiste teavet. Siin on palju välju, mida siin näete, kuid veebirakenduste toimimiseks on kõige olulisemad voo URL ja voo kirjeldus.

URL on oluline sisu õigest allikast toomiseks ja kirjeldus on oluline, kuna see sisaldab voo kokkuvõtet.

Ülejäänud põllud on vahepeal sisekasutuseks. Võite lisada rohkem või eemaldada mõned neist, nagu teile tundub. Dokumendi ülaosas on _id väli. Igal dokumendil peab olema see väli ja ID peab olema kordumatu.

Ülaltoodud näites on välja jaoks käsitsi loodud ID. Kui sellest ilma jätate, teeb MongoDB selle automaatselt.

  • Voo sissekannete jälgimine ja kogumine

Kui soovite jälgida rohkem uudistevooge, saate neid rohkem lisada, kasutades ülaltoodud vormingut. Kui olete kanalite lisamise lõpetanud, on aeg neid jälgida ja koguda. Allpool on toodud voo kande kogumise dokument:

( "_id": ObjectId("523b1153a2aa6a3233a91412"),

"description": "Martin Shkreli, the poster boy for prescription drug price increases who was arrested for securities fraud this week, has stepped down from his post as chief executive officer of Turing Pharmaceuticals Inc, the company said on Friday”,

"title": "Turing Pharma names chairman to replace Shkreli as CEO",

"summary": "Turing Pharma names chairman to replace Shkreli as CEO”,

"content": (( "base": "http://www.reuters.com/",

"type": "text/html",

"value": ”LOTS OF HTML HERE",

"language": "en" )), "published Date": ISODate("2015-12-18T18:13:58+0000"),

"link": " http://www.reuters.com/article/us-usa-crime-shkreli-ceo-idUSKBN0U122R20151218",

"feedID": ObjectId("523b1153a2aa6a3233a913f8") )

Veelkord näete välja täidetud _id koos mõne muu väljaga, näiteks kirjelduse, kokkuvõtte ja pealkirjaga. Sisuväli kasutab massiivi ja MongoDB võimaldab massiividel dokumente talletada. See alamdokumendi korraldus võib olla eriti kasulik olukordades, kus kogu teavet tuleb hoida koos.

Pange tähele sööda ID-d; sellel on sama ObjectId tüüp ja _id väärtus nagu Reutersi voo varasema voo sisestusdokumendi korral. See pakub soovituslikku mudelit, nii et saate Reutersi dokumendi tagastamiseks päringuid teha sama ID väärtusega kanalite kogu kohta.

  • Kasutaja jälgimine

Siin on näidisdokument kasutajate jälgimiseks:

( "_id" : ObjectId("54ad6c3ae764de42070b27b1"),

"active" : true,

"email" : " ",

"firstName" : "John",

"lastName" : "Hancock",

"sp_api_key_id" : "6YQB0A8VXM0X8RVDPPLRHBI7J",

"sp_api_key_secret" : "veBw/YFx56Dl0bbiVEpvbjF”,

"lastLogin" : ISODate("2015-01-07T17:26:18.996Z"),

"created" : ISODate("2015-01-07T17:26:18.995Z"),

"subs" : ( ObjectId("523b1153a2aa6a3233a913f8"),

ObjectId("54b563c3a50a190b50f4d63b") ), )

Siin on kasutajal kolm peamist atribuuti: eesnimi, perekonnanimi ja e-posti aadress. Stormpathi kasutajahaldusliideses saab kasutada ka kahte elementi: sp_api_key_secret ja sp_api_key_id.

Lõplik väli subs on tellimuste maatriks ja see näitab kanalit, mille kasutaja on tellinud.

  • Voo sissekande kaardistamine

Viimane kollektsioon võimaldab kasutajatel kaardistada kasutajad voogudele ja jälgida loetud vooge:

( "_id" : ObjectId("523b2fcc054b1b8c579bdb82"),

"read" : true,

"user_id" : ObjectId("54ad6c3ae764de42070b27b1"),

"feed_entry_id" : ObjectId("523b1153a2aa6a3233a91412"),

"feed_id" : ObjectId("523b1153a2aa6a3233a913f8") )

Nagu näete, kasutatakse tõese / vale tõeväärtuse määramiseks, kas kanalit on loetud või mitte. Nüüd peaks kasutaja suutma täita järgmisi funktsioone:

  1. Konto loomine
  2. Kanalite tellimine või tellimusest loobumine
  3. Voo sissekannete lugemine
  4. Voogude või kannete märkimine loetuks või lugemata
  5. Lähtestage parool

Siin on loetelu, kuidas kaardistada need toimingud HTTP marsruutidele ja käskudele.

TeeKäskKirjeldusMuutujad
/ kasutaja / registreeruPOSTRegistreeri uus kasutajaeesnimi
perekonnanimi
e-post
parool
/ user / resetPasswordPUTParooli lähtestaminee-post
/ toidabSAAHankige voo tellimusi iga kasutaja kohta koos kirjelduse ja lugemata arvuga
/ toidab / telliPUTTelli uus kanalfeedURL
/ kanalid / kirjedSAAHankige kõik kanalid, mille kanalid kasutaja on tellinud
/ kanalid // kirjedSAAHankige kõik konkreetse voo kanded
/ toidab /PUTMärkige kõik konkreetse voo kanded loetuks või lugemataloe =
/ kanalid // kirjed /PUTMärkige konkreetne kirje loetuks või lugemataloe =
/ toidab /KustutaLoobu selle konkreetse voo tellimusest

Turvaline HTTP on standardne lähenemisviis, mida kasutatakse tundlike detailide, näiteks paroolide saatmiseks tootmiskeskkonnas

Järgmised sammud: autentimine pärismaailmas

Kasutajate autentimine on oluline kasutajate, paroolide ja lähtestamise turvaliseks haldamiseks. Kasutajakontode autentimiseks on mitu võimalust.

Näiteks võite kasutada saidi Node.js kaudu passi pistikprogrammi, mis on kasulik autentimiseks Facebooki, Twitteri ja sotsiaalmeedia kontodega.

Ülaltoodud näide sõltub Stormpathi kasutamisest, REST API-st, mis toetab autoriseerimist ja autentimist API-võtmete kaudu ning pakub kasutajahaldust teenusena.

Soovitatavad artiklid

Siin on mõned artiklid, mis aitavad teil saada üksikasjalikumat teavet MongoDB-d kasutavate veebirakenduste kohta, nii et lihtsalt minge lingi kaudu.

  1. HTML5 vs Flash põnevil, kas tunnete erinevust?
  2. Java vs Node JS - 8 erinevust, mida peaksite teadma
  3. Veebi testimise rakendus - kasulik ja põhjalik juhend
  4. Kuidas kasutada veebimallide HTML-i Rakendus | Mobiil | Parim
  5. Tarkvaraarendus vs veebiarendus
  6. Kuidas valmistada veebianalüüsi tööriistu teie jaoks heaks (juhend)
  7. MongoDB vs PostgreSQL: millised on erinevused
  8. Kasulik juhend MongoDB vs Hadoop kohta
  9. Parim juhend MongoDB vs Cassandra kohta