Веб апликације које користе МонгоДБ - МонгоДБ је један од најбољих алата за озбиљне веб програмере, а овај чланак о МонгоДБ ће прегледати све што требате знати да бисте направили веб апликације са МонгоДБ. Али пре него што почнемо, погледајмо поближе популарни алат.
Шта је МонгоДБ?
Најједноставније речено, МонгоДБ је НоСКЛ база података која се базира на више платформама и користи документе сличне ЈСОН-у користећи динамичке шеме, назване БСОН документи, уместо да прати уобичајену структуру релацијске базе података (РДБ).
То вам је доста термина који можда нису упознати, па ћемо прво да их разбијемо.
Сада база података оријентисана на документа функционише на основном концепту да документ са подацима садржи 'метаподатке', а то су вредности које се користе за идентификацију врсте података и олакшавају похрану и преузимање када је потребно. На пример, погледајмо следећа два ретка података:
- Јохн Ханцоцк
- Архитекта
Поглед на ова два ретка требао би вам дати представу о томе на шта се ти подаци односе: име и занимање особе. Машина, међутим, не може разликовати ово разликовање. Треба му рећи врсту података.
У РДБ-у, овај тип се може сместити у складиште кључева и вредности које је одвојено од самог документа. Међутим, помоћу базе података оријентисане према документима, морате одредити врсту података док куцате шифру. Дакле, на крају пишете овако:
- Јохн Ханцоцк
- Архитекта
Ето га; сада је врста података дефинисана тачно у документу. То даје флексибилност која не постоји у РДБ-овима, због чега су базе података оријентисане на документе тако популарне за веб апликације.
На крају крајева, веб апликације подлијежу редовним измјенама и допунама. Наравно, и РДБ-ови имају своје предности, а базе података оријентисане на документе нису савршене за сваку ситуацију, али немојмо ићи у страну.
Идемо на ЈСОН, БСОН и шеме. ЈСОН се односи на ЈаваСцрипт Објецт Нотатион, али у ствари је отворени стандардни формат података који може радити са језицима који нису ЈаваСцрипт.
Шема је структура базе података, дефинисана као табеле у случају РДБ-ова. Будући да базе података оријентисане на документе не користе такве табеле, оне су у основи мање структуре или шеме.
Што се тиче БСОН-а, то само значи Бинари ЈСОН, а то је формат за чување података за МонгоДБ базу података. То је све што треба да знате о томе у овој фази.
Сада, уз основе на крају, погледајмо зашто је МонгоДБ добар избор за прављење веб апликација:
Зашто ићи за МонгоДБ?
Постоји неколико разлога популарности МонгоДБ-а за израду веб апликација. МонгоДБ није савршен алат; у ствари далеко од тога. МонгоДБ има неколико изазова и није прави подеси за све веб апликације. Али МонгоДБ добро функционише када су у питању веб апликације из следећих разлога:
-
МонгоДБ је без шеме
МонгоДБ база података може да садржи колекције докумената, при чему сваки документ има своју величину, садржај и број поља. Можете се вратити и променити кључне вредности или их додати или избрисати по жељи.
То такође чини структуру једног објекта јасном и јасном, а МонгоДБ је такође лако скалирати по потреби.
-
МонгоДБ је опште намене
База података може се користити за бројне веб апликације, укључујући управљање подацима о клијентима, управљање садржајем, чвориштима података, мобилним апликацијама, Интернетом ствари, великим подацима, каталозима производа и имовине и базом података као услуга.
-
МонгоДБ подржава аутоматско резање
Релативне базе података углавном се вертикално скалирају, у којима један сервер угошћује комплетну базу података. Ово може ограничити опсег рада, а решење је да се хоризонтално додају и додају сервери уместо да се капацитет концентрише на једном серверу.
Дељење базе података врши се како би се то избегло и натерало хардвер да делује као један сервер. Програмери морају да распоређују више релацијских база података на машинама и да развију апликацијски код за дистрибуцију података, упита и обједињавање резултата.
МонгоДБ и друге НоСКЛ базе података подржавају аутоматско дељење, што значи да аутоматски шире податке на различите сервере без да апликација буде обавештена о саставу.
МонгоДБ је посебно користан за рачунарство у облаку. Као програмер, не морате да правите скупе и сложене платформе за подршку веб апликација, али можете се фокусирати на писање стварног кода апликације.
Још неколико услова да сазнате више о МонгоДБ-у
У реду, сада смо покрили основе и предности МонгоДБ-а. Пре него што умачемо руку, погледајмо још неколико термина са којима бисте требали бити упознати:
- База података: база података садржи колекције и свака база података има своје датотеке у датотечном систему. Типични МонгоДБ сервер ће имати неколико база података.
- Збирка: група МонгоДБ докумената назива се збирка и то је еквивалент табели у РДБ-овима. Једна база података имаће збирку, а сваки документ ће имати различита поља. За разлику од таблета, колекције немају шему.
- Документ: Документ је гомила парова кључ-вредност и има динамичку шему, што значи да различити документи у истој збирци могу имати различите скупове поља и структуре.
Препоручени курсеви
- Руби Дебуггинг течајеви
- ПХП МиСКЛ Програмирање
- Онлине ВБ.НЕТ обука за програмирање
- ИТИЛ Фоундатион Траининг
Израда веб апликација
Веб апликације које се граде за овај конкретни МонгоДБ водич је РСС агрегатор попут Гоогле Реадер-а. Веб апликације ће се састојати од две кључне компоненте: РЕСТ АПИ и грабеж фееда.
Да бисте разумели шта је РЕСТ АПИ, прво морате мало знати о МЕАН скупу. Код за хватач фида може се наћи чак и у гитхуб директоријуму.
Разумевање МЕАН стака:
МЕАН стацк представља следеће:
- МонгоДБ, то је база података која ће се користити за веб апликацију
- јс, што је лагани оквир за веб апликације
- јс, што је оквир за креирање веб апликација и ЈаваСцрипта богатих ХТМЛ5-ом
- јс, што је ЈаваСцрипт преводилац на страни сервера
За веб апликације о којима се овде говори, биће створен РЕСТ АПИ уместо ХТМЛ корисничког интерфејса. АПИ за репрезентативну државну трансфер (РЕСТ) је лакша алтернатива АПИ-јевима заснованим на КСМЛ-у и може послужити као база за било који тип интерфејса, иако нема корисничко сучеље.
РЕСТ функционира на моделу клијент-сервер, при чему клијент шаље ХТТП наредбе на ХТТП сервер, заједно са променљивим параметрима кодираним у УРЛ-у који описује циљни објект акције. Сервер затим одговара ЈСОН и кодом резултата.
Сада, МонгДБ и ЈаваСцрипт добро реагују са ЈСОН-ом, што чини МЕАН стацк посебно погодним за веб апликације.
ЦРУД
ЦРУД акроним означава стварање, читање, ажурирање и брисање. Ово су уобичајене операције базе података које на ХТТП-у преводе као пост, узимање, стављање и брисање.
Израда РЕСТ АПИ-ја
Започнимо креирањем РЕСТ АПИ-ја, развијањем темеља за изградњу веб апликација. Апликација би могла бити заснована на вебу или дизајнирана за Андроид, иОС или друге одређене платформе. За почетак, набројимо ствари које ће апликација моћи да уради:
- Дозволите корисницима да креирају налог
- Омогућите им да се претплате или одјаве на претплату
- Дајте им могућност да читају и означавају ставке фееда као прочитане или непрочитане
- Пратите РСС феедове ради праћења
- Складиштите информације о корисницима у њихове рачуне
- Пратите претплате корисника феед-а
- Пратите унос фееда који је корисник већ прочитао
Моделирање података
На основу захтева, веб апликацијама ће требати четири колекције за управљање информацијама:
- Корисничка колекција
- Колекција фееда
- Збирка мапирања уноса са феед-ом корисника
- Колекција за унос фееда
Ево детаљнијег прегледа сваког од њих:
-
Колекција фееда:
Следећи ЈСОН је добар пример за моделирање колекције фееда:
( "_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” )
ЈСОН документ изнад је РСС феед за Ројтерс, који прати информације о најновијим вестима објављеним на веб локацији. Овде можете видети пуно поља, али најважније од којих веб апликације функционишу је УРЛ фида и опис фида.
УРЛ је важан за проналажење садржаја из правог извора, а опис је важан јер садржи резиме фида.
Остала поља су, у међувремену, за интерну употребу. Можете додати више или уклонити неке ствари по вашем осећају. Тачно на врху документа је поље _ид. Сваки документ мора имати ово поље, а лична карта мора бити јединствена.
У горњем примеру, ИД је креиран ручно за поље. Ако ово пропустите, МонгоДБ ће то аутоматски направити.
-
Праћење и прикупљање уноса фееда
Ако желите да пратите више феедова вести, можете да их додате користећи исти формат горе. Једном када завршите са додавањем феедова, време је да их пратите и прикупите. Доље је документ за прикупљање уноса:
( "_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") )
Још једном можете видети испуњено поље _ид, заједно са неким другим пољима као што су опис, сажетак и наслов. Поље са садржајем користи низ, а МонгоДБ дозвољава низовима за смештање докумената. Овај аранжман под-докумената може бити посебно користан у ситуацијама када се све информације морају држати заједно.
Забележите феедИД; има исти тип ОбјецтИд и вриједност _ид као и ранији документ уноса фееда за Реутерс феед. Ово нуди референтни модел, тако да можете затражити колекцију феедова на истој ИД вредности да бисте вратили Реутерс документ.
-
Праћење корисника
Ево примера документа за праћење корисника:
( "_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") ), )
Овде корисник има три кључна атрибута: име, презиме и адресу е-поште. Постоје и два елемента која се могу користити са Стормпатх корисничким АПИ-јем за управљање: сп_апи_кеи_сецрет и сп_апи_кеи_ид.
Завршно поље, субс, је низ претплате и говори о фееду на који је корисник претплаћен.
-
Мапирање уноса у феед
Коначна колекција омогућава мапирање корисника на феедове и праћење прочитаних феедова:
( "_id" : ObjectId("523b2fcc054b1b8c579bdb82"),
"read" : true,
"user_id" : ObjectId("54ad6c3ae764de42070b27b1"),
"feed_entry_id" : ObjectId("523b1153a2aa6a3233a91412"),
"feed_id" : ObjectId("523b1153a2aa6a3233a913f8") )
Као што видите, основни истинити / лажни Боолеан користи се за означавање да ли је феед прочитан или не. Сада би корисник требао бити у могућности да обавља сљедеће функције:
- Отварање налога
- Претплата или одјава претплате на феедове
- Читање уноса фееда
- Означавање феедова или уноса прочитаним или непрочитаним
- Ресетујте лозинку
Ево листе како пресликати ове операције на ХТТП руте и наредбе.
Рута | Команда | Опис | Променљиве |
/ корисник / упис | ПОШТА | Региструјте новог корисника | име презиме емаил Лозинка |
/ усер / ресетПассворд | СТАВИТИ | Ресетовање лозинке | емаил |
/ феедови | ДОБИТИ | Добијајте претплате за феед за сваког корисника са описом и непрочитаним бројем | |
/ феедови / претплата | СТАВИТИ | Претплатите се на нови феед | феедУРЛ |
/ фееди / уноси | ДОБИТИ | Дохвати све уносе за феедове на које је корисник претплаћен | |
/ феед / уноси | ДОБИТИ | Дохвати све уносе за одређени феед | |
/ феед / | СТАВИТИ | Означите све уносе за одређени феед као прочитане или непрочитане | реад = |
/ феед / уноси / | СТАВИТИ | Означите одређени унос као прочитани или непрочитани | реад = |
/ феед / | ДЕЛЕТЕ | Одјавите се из овог посебног фееда |
Безбедан ХТТП је стандардни приступ који се користи за слање осетљивих детаља попут лозинки у производном окружењу
Следећи кораци: аутентификација у стварном свету
Аутентификација корисника важна је за сигурно управљање корисницима, лозинкама и ресетовањем. Постоји неколико начина за аутентификацију корисничких налога.
На пример, можете да користите додатак за пасош са Ноде.јс, што је корисно за аутентификацију помоћу налога за Фацебоок, Твиттер и друштвене мреже.
Горњи пример зависи од употребе Стормпатх-а, РЕСТ АПИ-ја који подржава ауторизацију и аутентификацију преко АПИ кључева и нуди корисничко управљање као услугу.
Препоручени чланци
Ево неколико чланака који ће вам помоћи да сазнате више детаља о Веб апликацијама помоћу МонгоДБ-а, зато само прођите кроз везу.
- ХТМЛ5 вс Фласх Узбуђени сте што знате разлику?
- Јава вс Ноде ЈС - 8 разлика које бисте требали знати
- Апликација за веб тестирање користан и свеобухватан водич
- Како се користи ХТМЛ предложак | Пријава | Мобиле | Најбоље
- Развој софтвера вс Веб Девелопмент
- Како припремити алате за веб аналитику да раде за вас (водич)
- МонгоДБ вс ПостгреСКЛ: Које су разлике
- Корисни водич за МонгоДБ и Хадооп
- Најбољи водич на МонгоДБ вс Цассандра