Kako sestaviti spletne aplikacije s programom MongoDB

Kazalo:

Anonim

Spletne aplikacije, ki uporabljajo MongoDB - MongoDB je eno najboljših orodij za resne spletne razvijalce, v tem članku o MongoDB pa boste preučili vse, kar morate vedeti za izdelavo spletnih aplikacij s programom MongoDB. Preden pa začnemo, si podrobneje oglejmo priljubljeno orodje.

Vir slik: pixabay.com

Kaj je MongoDB?

Najpreprosteje povedano, MongoDB je na platformo podatkovne baze NoSQL, usmerjena v več platform in uporablja dokumente, podobne JSON, z uporabo dinamičnih shem, imenovanih BSON dokumenti, namesto da bi sledil strukturi običajne relacijske baze podatkov (RDB).

To je veliko izrazov, ki jih morda ne poznate, zato jih najprej razčlenimo.

Zdaj dokumentacija usmerjena podatkovna baza deluje na osnovnem konceptu, da podatkovni dokument vsebuje "metapodatke", ki so vrednosti, ki se uporabljajo za identifikacijo vrste podatkov in olajšajo shranjevanje in nalaganje, kadar je to potrebno. Na primer, poglejmo naslednji dve vrstici podatkov:

  • John Hancock
  • Arhitekt

Pogled na te dve vrstici naj vam da predstavo, na kaj se nanašajo ti podatki: ime in poklic osebe. Vendar stroj ne more razločiti tega razlikovanja. Povedati mu je treba vrsto podatkov.

V RDB je to vrsto mogoče shraniti v shrambo ključ-vrednost, ki je ločena od samega dokumenta. Vendar z bazo, ki je usmerjena v dokumente, določite vrsto podatkov med vnašanjem kode. Tako na koncu pišete nekako takole:

  • John Hancock
  • Arhitekt

In tam greš; zdaj je bila vrsta podatkov definirana prav v dokumentu. To daje prilagodljivost, ki je ni v RDB-jih, zato so baze podatkov, usmerjene v dokumente, tako priljubljene za spletne aplikacije.

Navsezadnje se spletne aplikacije redno spreminjajo in posodabljajo. Seveda imajo RDB-ji tudi svoje prednosti in dokumentarno naravnane baze podatkov niso popolne za vsako situacijo, vendar ne gremo vstran.

Pojdimo na JSON, BSON in sheme. JSON se nanaša na JavaScript Object Notation, vendar je dejansko odprt standardni format podatkov, ki lahko deluje z drugimi jeziki razen JavaScript.

Shema je struktura baze podatkov, ki je v primeru RDB definirana kot tabele. Ker baze podatkov, ki so usmerjene v dokumente, ne uporabljajo takih tabel, so v bistvu brez struktur ali brez shem.

Kar zadeva BSON, dobro, da to pomeni Binary JSON, in to je oblika shranjevanja podatkov za bazo podatkov MongoDB. To je vse, kar morate vedeti o tem v tej fazi.

Zdaj pa z osnovami poglejmo, zakaj je MongoDB dobra izbira za izdelavo spletnih aplikacij:

Zakaj iti na MongoDB?

Obstaja več razlogov za priljubljenost MongoDB za gradnjo spletnih aplikacij. MongoDB ni popolno orodje; pravzaprav daleč od tega. MongoDB ima več izzivov in ni primeren za vse spletne aplikacije. Toda MongoDB deluje dobro, ko gre za spletne aplikacije iz naslednjih razlogov:

  • MongoDB je brez sheme

Baza podatkov MongoDB lahko hrani zbirke dokumentov, pri čemer ima vsak dokument svojo velikost, vsebino in število polj. Lahko se vrnete in spremenite ključne vrednosti ali jih dodate in izbrišete, kot želite.

Zaradi tega je struktura posameznega predmeta jasna in enostavna, MongoDB pa je po potrebi tudi enostavno prilagoditi.

  • MongoDB je splošnega pomena

Baza podatkov se lahko uporablja za številne spletne aplikacije, vključno z upravljanjem podatkov o strankah, upravljanjem vsebine, vozlišči podatkov, mobilnimi aplikacijami, Internetom stvari, velikimi podatki, katalogom izdelkov in sredstev ter podatkovno bazo.

  • MongoDB podpira samodejno ostrenje

Relacijske baze podatkov se običajno vertikalno merijo, v katerem en sam strežnik gosti celotno bazo podatkov. To lahko omeji obseg delovanja, rešitev pa je, da vodoravno dodajate in dodajate strežnike, ne pa da koncentrirate zmogljivosti na enem strežniku.

Skupna raba baze podatkov poteka tako, da se temu prepreči in strojna oprema deluje kot en strežnik. Razvijalci morajo namestiti več relacijskih baz podatkov v strojih in razviti aplikacijsko kodo za distribucijo podatkov, poizvedb in združevanje rezultatov.

MongoDB in druge baze podatkov NoSQL podpirajo samodejno skupno rabo, kar pomeni, da samodejno razširijo podatke po različnih strežnikih, ne da bi se aplikacija seznanila s sestavo.

MongoDB je še posebej uporaben pri računalništvu v oblaku. Kot razvijalcu vam ni treba graditi dragih in zapletenih platform za podporo spletnih aplikacij, ampak se lahko osredotočite na pisanje dejanske kode aplikacije.

Še nekaj izrazov, če želite izvedeti več o MongoDB

V redu, zato smo zdaj pokrili osnove in prednosti programa MongoDB. Preden si umažemo roko, poglejmo še nekaj izrazov, ki bi jih morali poznati:

  • Baza podatkov: baza podatkov vsebuje zbirke in vsaka baza podatkov ima svoje datoteke v datotečnem sistemu. Običajni strežnik MongoDB bo imel več baz podatkov.
  • Zbirka: skupina dokumentov MongoDB se imenuje zbirka in to je ekvivalent tabele v RDB-jih. Posamezna zbirka podatkov bo imela zbirko, vsak dokument pa bo imel različna polja. Za razliko od tabličnih računalnikov zbirke nimajo sheme.
  • Dokument: Dokument je kup parov ključ-vrednost in ima dinamično shemo, kar pomeni, da imajo lahko različni dokumenti v isti zbirki različne naloge in strukture polja.

    Priporočeni tečaji

  • Tečaji za odpravljanje napak Ruby
  • Usposabljanje za programiranje PHP MySQL
  • Spletno usposabljanje za programiranje VB.NET
  • Izobraževalni tečaj fundacije ITIL

Izdelava spletnih aplikacij

Spletne aplikacije, ki se gradijo za ta konkretni vodnik MongoDB, so zbiralniki RSS, kot je Google Reader. Spletne aplikacije bodo imele dve ključni komponenti: API REST in zajem podajalnika.

Če želite razumeti, kaj je REST API, morate najprej malo vedeti o skladbi MEAN. Kodo za zajemanje vira lahko najdete celo v imeniku github.

Razumevanje sklada MEAN:

Sklad MEAN pomeni naslednje:

  1. MongoDB, ki je baza podatkov, ki se bo uporabljala za spletno aplikacijo
  2. js, ki je lahek okvir spletnih aplikacij
  3. js, ki je okvir za ustvarjanje spletnih aplikacij z bogatim JavaScript in HTML5
  4. js, ki je na strani strežnika tolmač JavaScript

Za spletne aplikacije, o katerih razpravljamo tukaj, bo namesto uporabniškega vmesnika HTML ustvarjen REST API. API za reprezentativno stanje prenosa (REST) ​​je lažja alternativa API-jem, ki temeljijo na XML in lahko služi kot osnova za kateri koli tip vmesnika, čeprav nima uporabniškega vmesnika.

REST funkcije na modelu odjemalec-strežnik, pri čemer odjemalec pošilja HTTP ukaze strežniku HTTP, skupaj s spremenljivimi parametri, kodiranimi v URL-ju, ki opisujejo ciljni objekt dejanja. Strežnik nato odgovori s kodo JSON in rezultatom.

Zdaj se MongDB in JavaScript dobro odzivata z JSON, zaradi česar je kup MEAN še posebej primeren za spletne aplikacije.

CRUD

Skrajšava CRUD pomeni ustvarjanje, branje, posodabljanje in brisanje. To so običajne operacije baz podatkov, ki se v HTTP prevajajo kot objava, pridobivanje, odlaganje in brisanje.

Izdelava API-ja REST

Začnimo z ustvarjanjem API-ja REST in razvijanjem temeljev za gradnjo spletnih aplikacij. Aplikacija je lahko spletna ali zasnovana za Android, iOS ali druge posebne platforme. Za začetek naštejmo stvari, ki jih bo aplikacija lahko naredila:

  1. Dovoli uporabnikom, da ustvarijo račun
  2. Omogočite jim, da se naročijo ali odjavijo za vire
  3. Dajte jim možnost, da berejo in označujejo vnose vira kot prebrane ali neprebrane
  4. Sledite RSS virom za spremljanje
  5. Hranite podatke o uporabnikih v njihovih računih
  6. Sledite naročninam na uporabniške vire
  7. Sledite vnosu vira, ki ga je uporabnik že prebral

Modeliranje podatkov

Glede na zahteve bodo spletne aplikacije za upravljanje informacij potrebovale štiri zbirke:

  1. Zbirka uporabnikov
  2. Zbiranje krme
  3. Zbirka preslikav vnosov za uporabniške vire
  4. Zbirka vnosov vira

Tukaj je podrobnejši pogled na vsakega od njih:

  • Zbirka virov:

Naslednji JSON je dober primer za modeliranje zbirke virov:

( "_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” )

Zgoraj navedeni dokument JSON je RSS vir za Reuters in spremlja informacije o najnovejših novicah, objavljenih na spletnem mestu. Tukaj vidite veliko polj, vendar sta najpomembnejša za delovanje spletnih aplikacij URL vira in opis vira.

URL je pomemben za pridobivanje vsebine iz pravega vira, opis pa je pomemben, ker vsebuje povzetek vira.

Preostala polja so medtem namenjena interni uporabi. Lahko dodate več ali odstranite nekaj, kar želite. Na vrhu dokumenta je polje _id. Vsak dokument mora imeti to polje in ID mora biti enkraten.

V zgornjem primeru je bil ID za polje ustvarjen ročno. Če to zamudite, bo MongoDB samodejno naredil enega.

  • Sledenje in zbiranje vnosov vira

Če želite spremljati več virov, jih lahko dodate v isti obliki zgoraj. Ko končate z dodajanjem virov, je čas, da jih sledite in zberete. Spodaj je dokument za zbiranje vira:

( "_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") )

Še enkrat lahko vidite izpolnjeno polje _id skupaj z nekaterimi drugimi polji, kot so opis, povzetek in naslov. Vsebinsko polje uporablja matriko, MongoDB pa omogoča nizi za shranjevanje dokumentov. Ta ureditev poddokumentov je lahko še posebej uporabna v primerih, ko je treba vse informacije hraniti skupaj.

Upoštevajte feedID; ima isti tip ObjectId in vrednost _id kot prejšnji dokument za vnos vira za vir Reuters. Ta ponuja referenčni model, tako da lahko poiščete zbirko virov na isti vrednosti ID, da vrnete dokument Reuters.

  • Sledenje uporabniku

Tu je primer dokumenta za sledenje uporabnikom:

( "_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") ), )

Tu ima uporabnik tri ključne atribute: ime, priimek in e-poštni naslov. Obstajata tudi dva elementa, ki ju lahko uporabljate z uporabniškim API-jem za upravljanje Stormpath: sp_api_key_secret in sp_api_key_id.

Končno polje, subs, je naročniško polje in pove vir, na katerega je uporabnik naročen.

  • Preslikava vnosa v vir

Končna zbirka omogoča kartiranje uporabnikov do virov in sledenje prebranim virom:

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

"read" : true,

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

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

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

Kot lahko vidite, se za označevanje, ali je bil vir prebran ali ne, uporablja osnovni pravi / napačni Boolean. Zdaj naj bi uporabnik lahko izvajal naslednje funkcije:

  1. Ustvarjanje računa
  2. Naročanje ali odjava na vire
  3. Branje vnosov vira
  4. Označevanje virov ali vnosov kot prebranih ali neprebranih
  5. Ponastavite geslo

Tu je seznam, kako te operacije preslikati na poti in ukaze HTTP.

PotUkazOpisSpremenljivke
/ uporabnik / vpisPOŠTRegistrirajte novega uporabnikaime
priimek
E-naslov
geslo
/ uporabnik / resetPasswordPUTResetiranje geslaE-naslov
/viriDOBIPridobite naročnine na vire za vsakega uporabnika z opisom in številom neprebranih strani
/ viri / naročite sePUTNaročite se na nov virfeedURL
/ viri / vnosiDOBIPridobite vse vnose za vire, na katere je uporabnik naročen
/ viri // vnosiDOBIPridobite vse vnose za določen vir
/viri/PUTOznačite vse vnose za določen vir kot prebrane ali neprebraneprebrati =
/ viri // vnosi /PUTDoločen vnos označite kot prebran ali neprebranprebrati =
/viri/DELETEOdjavite se iz tega posebnega vira

Varni HTTP je standardni pristop, ki se uporablja za pošiljanje občutljivih podrobnosti, kot so gesla v proizvodnem okolju

Naslednji koraki: pristnost v resničnem svetu

Preverjanje uporabnikov je pomembno za varno upravljanje uporabnikov, gesel in ponastavitev. Obstaja več načinov za preverjanje pristnosti uporabniških računov.

Na primer, lahko uporabite vtičnik za potni list z Node.js, ki je uporaben za preverjanje pristnosti z računi Facebooka, Twitterja in družbenih medijev.

Zgornji primer je odvisen od uporabe Stormpath, REST API-ja, ki podpira avtorizacijo in overjanje prek ključev API-ja in ponuja upravljanje uporabnikov kot storitev.

Priporočeni članki

Tukaj je nekaj člankov, ki vam bodo pomagali do podrobnosti o spletnih aplikacijah s programom MongoDB, zato pojdite po povezavi.

  1. HTML5 vs Flash navdušen, da pozna razliko?
  2. Java vs Node JS - 8 razlik, ki bi jih morali vedeti
  3. Uporaba za spletno testiranje uporaben in izčrpen vodnik
  4. Kako uporabljati spletne predloge HTML | Prijava | Mobilni | Najboljše
  5. Razvoj programske opreme v primerjavi s spletnim razvojem
  6. Kako pripraviti orodja za spletno analitiko, ki bodo delala za vas (vodnik)
  7. MongoDB vs PostgreSQL: Kakšne so razlike
  8. Koristni vodnik o MongoDB proti Hadoopu
  9. Najboljši vodnik MongoDB proti Cassandri