Web aplikacije koje koriste MongoDB - MongoDB je jedan od najboljih alata za ozbiljne web programere, a ovaj članak o MongoDBu pregledat će sve što trebate znati za izradu web aplikacija s MongoDB. No prije nego što počnemo, pogledajmo pobliže popularni alat.

Izvor slike: pixabay.com

Što je MongoDB?

Najjednostavnije rečeno, MongoDB je NoSQL baza podataka na više platformi koja koristi dokumente slične JSON koristeći dinamičke sheme, nazvane BSON dokumenti, umjesto da slijedi strukturu konvencionalne relacijske baze podataka (RDB).

To je puno pojmova koji vam možda nisu poznati, pa ćemo ih prvo raščlaniti.

Sada baza podataka orijentirana na dokumenta funkcionira na osnovnom konceptu da podatkovni dokument sadrži 'metapodatke', a to su vrijednosti koje se koriste za identificiranje vrste podataka i olakšavaju pohranu i preuzimanje kada je potrebno. Na primjer, pogledajmo sljedeće dvije retke podataka:

  • John Hancock
  • Arhitekt

Pogled na ta dva retka trebao bi vam dati predstavu o tome na što se ti podaci odnose: ime i zanimanje osobe. Međutim, stroj ne može prepoznati to razlikovanje. Treba mu reći vrstu podataka.

U RDB-u, ova se vrsta može pohraniti u spremište ključeva i vrijednosti odvojeno od samog dokumenta. Međutim, pomoću baze podataka orijentirane na dokument, morate odrediti vrstu podataka dok unosite kôd. Dakle, na kraju pišete ovako nekako:

  • John Hancock
  • Arhitekt

I tamo idete; sada je vrsta podataka definirana unutar dokumenta. To daje fleksibilnost koja ne postoji u RDB-ovima, zbog čega su baze podataka orijentirane na dokumente tako popularne za web aplikacije.

Uostalom, web aplikacije podliježu redovitim izmjenama i dopunama. Naravno, i RDB-ovi imaju svoje prednosti, a ni baze podataka orijentirane na dokumente nisu savršene za svaku situaciju, ali nemojmo ići u stranu.

Krenimo na JSON, BSON i sheme. JSON se odnosi na JavaScript Object Notation, ali to je zapravo otvoreni standardni format podataka koji može raditi s jezicima koji nisu JavaScript.

Shema je struktura baze podataka, definirana kao tablice u slučaju RDB-ova. Budući da baze podataka orijentirane na dokumente ne koriste takve tablice, one su u osnovi manje strukture ili sheme.

Što se tiče BSON-a, to samo znači Binary JSON, a to je format za pohranu podataka za MongoDB bazu podataka. To je sve što o tome trebate znati u ovoj fazi.

Sada, s osnovama na kraju, pogledajmo zašto je MongoDB dobar izbor za izradu web aplikacija:

Zašto ići za MongoDB?

Postoji nekoliko razloga popularnosti MongoDB-a za izradu web aplikacija. MongoDB nije savršen alat; zapravo daleko od toga. MongoDB ima nekoliko izazova, a nije pravi podlog za sve web aplikacije. No, MongoDB dobro funkcionira kada su u pitanju web aplikacije iz sljedećih razloga:

  • MongoDB nije shema

MongoDB baza podataka može držati zbirke dokumenata pri čemu svaki dokument ima svoju veličinu, sadržaj i broj polja. Možete se vratiti i promijeniti ključne vrijednosti ili ih dodati i izbrisati po želji.

To također čini strukturu jednog objekta jasnom i jasnom, a MongoDB se također lako mjeri po potrebi.

  • MongoDB je opće namjene

Baza podataka može se koristiti za brojne web aplikacije, uključujući upravljanje podacima o klijentima, upravljanje sadržajem, čvorištima podataka, mobilnim aplikacijama, Internetom stvari, velikim podacima, katalozima proizvoda i imovine i bazom podataka kao usluga.

  • MongoDB podržava automatsko rezanje

Relacijske baze podataka obično se skaliraju vertikalno, u kojima jedan poslužitelj nalazi kompletnu bazu podataka. Ovo može ograničiti opseg rada, s tim što je rješenje potrebno horizontalno dodavati i dodavati poslužitelje, a ne koncentriranje kapaciteta na jednom poslužitelju.

Dijeljenje baze podataka vrši se kako bi se to izbjeglo i da bi se hardver mogao ponašati kao jedan poslužitelj. Programeri moraju rasporediti više relacijskih baza podataka na svim strojevima i razviti aplikacijski kod za distribuciju podataka, upita i objedinjavanje rezultata.

MongoDB i druge NoSQL baze podataka podržavaju automatsku razmjenu, što znači da automatski raspodjeljuju podatke na raznim poslužiteljima, a da aplikacija nije svjesna sastava.

MongoDB je osobito koristan kod računalstva u oblaku. Kao programer, ne morate graditi skupe i složene platforme za podršku web aplikacija, ali možete se usredotočiti na pisanje stvarnog aplikacijskog koda.

Još nekoliko uvjeta za učenje o MongoDB-u

U redu, sada smo pokrili osnove i prednosti MongoDB-a. Prije nego što umačemo ruku, pogledajmo još nekoliko pojmova sa kojima biste trebali biti upoznati:

  • Baza podataka: baza podataka sadrži zbirke, a svaka baza podataka ima svoje datoteke na datotečnom sustavu. Tipični MongoDB poslužitelj imat će nekoliko baza podataka.
  • Zbirka: grupa MongoDB dokumenata naziva se zbirka i to je ekvivalent tablici u RDB-ovima. Jedna će baza podataka imati zbirku, a svaki će dokument imati različita polja. Za razliku od tableta, zbirke nemaju shemu.
  • Dokument: Dokument je skup parova ključ-vrijednost i ima dinamičku shemu, što znači da različiti dokumenti u istoj zbirci mogu imati različite skupove polja i strukture.

    Preporučeni tečajevi

  • Rubini za otklanjanje pogrešaka
  • PHP MySQL programiranje obuke
  • Internetska obuka za programiranje VB.NET
  • Tečaj za tečajeve zaklade ITIL

Izrada web aplikacija

Web aplikacije koje se grade za ovaj konkretni MongoDB vodič je RSS agregator kao što je Google Reader. Web aplikacije imat će dvije ključne komponente: REST API i ugrađivač feeda.

Da biste shvatili što je REST API, prvo morate malo znati o MEAN skupu. Kôd za hranjenje feeda može se naći čak i u github direktoriju.

Razumijevanje MEAN stog:

MEAN stog znači sljedeće:

  1. MongoDB, to je baza podataka koja će se koristiti za web aplikaciju
  2. js, što je lagani okvir web aplikacija
  3. js, što je okvir za stvaranje web i aplikacija bogatih JavaScript i HTML5
  4. js, što je JavaScript tumač na strani poslužitelja

Za web aplikacije o kojima se ovdje raspravlja, umjesto HTML korisničkog sučelja kreirat će se REST API. API za reprezentativnu državnu prijenos (REST) ​​lakša je alternativa API-jevima temeljenim na XML-u i može poslužiti kao baza za bilo koji tip sučelja, iako nema korisničko sučelje.

REST funkcionira na modelu klijent-poslužitelj, pri čemu klijent šalje HTTP naredbe na HTTP poslužitelj, zajedno s promjenjivim parametrima kodiranim u URL-u koji opisuje ciljni objekt akcije. Poslužitelj zatim odgovara JSON i kodom rezultata.

Sada i MongDB i JavaScript dobro reagiraju na JSON, što MEAN stack postaje posebno pogodno za web aplikacije.

CRUD

CRUD akronim označava stvaranje, čitanje, ažuriranje i brisanje. Ovo su uobičajene operacije s bazama podataka koje na HTTP-u prevode kao post, uzimanje, stavljanje i brisanje.

Izgradnja REST API-ja

Započnimo s stvaranjem REST API-ja, razvijanjem temelja za izgradnju web aplikacija. Aplikacija bi mogla biti internetska ili dizajnirana za Android, iOS ili druge određene platforme. Za početak, nabrojimo ono što će aplikacija moći učiniti:

  1. Dopustite korisnicima da stvore račun
  2. Omogućite im pretplatu ili odjavu pretplate na sažetke
  3. Dajte im mogućnost čitanja i označavanja unosa feeda kao pročitanih ili nepročitanih
  4. Pratite RSS sažetke sadržaja radi nadzora
  5. Spremite podatke o korisnicima u njihove račune
  6. Pratite pretplate na feedove korisnika
  7. Pratite unos feeda koji je korisnik već pročitao

Modeliranje podataka

Na temelju zahtjeva, web aplikacijama će trebati četiri zbirke za upravljanje informacijama:

  1. Zbirka korisnika
  2. Zbirka feeda
  3. Zbirka za mapiranje unosa korisnika
  4. Zbirka ulaznih feedova

Evo pobližeg pogleda svakog od njih:

  • Zbirka feeda:

Sljedeći JSON dobar je primjer za modeliranje kolekcije feeda:

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

Gore navedeni dokument JSON predstavlja RSS feed za Reuters, a prati informacije o najnovijim vijestima objavljenim na web mjestu. Ovdje možete vidjeti puno polja, ali najvažnije za funkcioniranje web aplikacija je URL feeda i opis feeda.

URL je važan za dohvaćanje sadržaja iz pravog izvora, a opis je važan jer sadrži sažetak feeda.

Ostala su polja, u međuvremenu, za internu upotrebu. Možete dodati više ili ukloniti nešto što želite. Na vrhu dokumenta nalazi se polje _id. Svaki dokument mora imati ovo polje, a ID mora biti jedinstven.

U gornjem primjeru, ID je ručno stvoren za polje. Ako propustite ovaj, MongoDB će automatski napraviti jedan.

  • Praćenje i prikupljanje unosa feeda

Ako želite pratiti više feedova vijesti, možete ih dodati pomoću istog oblika gore. Nakon što završite s dodavanjem feedova, vrijeme je da ih pratite i prikupite. Sljedeće je dokument za prikupljanje unosa:

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

Još jednom možete vidjeti ispunjeno polje _id, zajedno s nekim drugim poljima poput opisa, sažetka i naslova. Polje sa sadržajem koristi niz, a MongoDB omogućuje nizovima za pohranu dokumenata. Ovaj aranžman pod-dokumenata može biti posebno koristan u situacijama kada se sve informacije moraju držati zajedno.

Zabilježite feedID; ima isti tip ObjectId i vrijednost _id kao i raniji dokument unosa feeda za Reuters. To nudi referentni model, tako da možete zatražiti kolekciju feeda na istoj ID vrijednosti kako biste vratili Reuters dokument.

  • Praćenje korisnika

Evo primjera dokumenta za praćenje korisnika:

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

Ovdje korisnik ima tri ključna atributa: ime, prezime i adresu e-pošte. Postoje i dva elementa koja se mogu koristiti s korisničkim API-om za uslugu Stormpath: sp_api_key_secret i sp_api_key_id.

Završno polje, subs, je niz pretplate i govori o feedu na koji je korisnik pretplaćen.

  • Kartiranje unosa feeda

Konačna zbirka omogućuje mapiranje korisnika na feedove i praćenje pročitanih feedova:

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

"read" : true,

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

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

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

Kao što vidite, osnovni istiniti / lažni boolean koristi se za označavanje je li feed očitan ili ne. Sada bi korisnik trebao moći obavljati sljedeće funkcije:

  1. Stvaranje računa
  2. Pretplata ili odjava pretplate
  3. Čitanje unosa feeda
  4. Označavanje feedova ili unosa pročitanim ili nepročitanim
  5. Poništite zaporku

Evo popisa kako preslikati ove operacije na HTTP rute i naredbe.

putnaredbaOpisVarijable
/ Korisnika / RegistriranjePOSTRegistrirajte novog korisnikaime
prezime
e
zaporka
/ Korisnika / resetPasswordSTAVITIPoništavanje lozinkee
/ feedsDOBITIDohvati pretplate na feed za svakog korisnika s opisom i nepročitanim brojem
/ sažeci / pretplatuSTAVITIPretplatite se na novi feedfeedURL
/ feedovi / unosiDOBITIDohvati sve unose za feedove na koje je korisnik pretplaćen
/ Feeds // unosiDOBITIDohvati sve unose za određeni feed
/ Sažeci /STAVITIOznačite sve unose za određeni feed kao pročitane ili nepročitaneread =
/ Sažeci // unosi /STAVITIOznačite određeni unos kao pročitani ili nepročitaniread =
/ Sažeci /IZBRISATIOdjavite pretplatu na ovaj feed

Sigurni HTTP standardni je pristup koji se koristi za slanje osjetljivih detalja poput lozinki u proizvodnom okruženju

Sljedeći koraci: autentifikacija u stvarnom svijetu

Autentifikacija korisnika važna je za sigurno upravljanje korisnicima, zaporkama i resetiranjem. Postoji nekoliko načina provjere autentičnosti korisničkih računa.

Na primjer, pomoću Node.js mogli biste upotrijebiti dodatak za putovnicu koji je koristan za provjeru autentičnosti pomoću računa Facebooka, Twittera i društvenih medija.

Gornji primjer ovisi o upotrebi Stormpath-a, REST API-ja koji podržava autorizaciju i provjeru autentičnosti putem API ključeva i nudi korisničko upravljanje kao uslugu.

Preporučeni članci

Evo nekoliko članaka koji će vam pomoći da saznate više detalja o web aplikacijama pomoću MongoDB-a pa samo prođite vezu.

  1. HTML5 vs Flash Uzbuđeni ste što znate razliku?
  2. Java vs Node JS - 8 razlika koje biste trebali znati
  3. Aplikacija za web testiranje koristan i iscrpan vodič
  4. Kako se koriste web predloške HTML | Prijava | Mobile | Najbolje
  5. Razvoj softvera vs web razvoj
  6. Kako pripremiti alate za web analitiku da rade za vas (vodič)
  7. MongoDB vs PostgreSQL: Koje su razlike
  8. Korisni vodič za MongoDB i Hadoop
  9. Najbolji vodič na MongoDB vs Cassandra

Kategorija: