MongoDB-t használó webes alkalmazások - A MongoDB az egyik legjobb eszköz a súlyos webfejlesztők számára, és a MongoDB-vel foglalkozó cikk mindent tartalmaz, amelyet tudnia kell a MongoDB-vel történő webes alkalmazások létrehozásához. De mielőtt elkezdenénk, vessünk közelebbről a népszerű eszközt.

Képforrás: pixabay.com

Mi az a MongoDB?

A legegyszerűbben fogalmazva: a MongoDB egy platformközi, dokumentum-orientált NoSQL adatbázis, amely JSON-szerű dokumentumokat használ dinamikus sémákkal, úgynevezett BSON dokumentumokkal, ahelyett, hogy a hagyományos relációs adatbázis (RDB) struktúrát követné.

Ez egy csomó kifejezés, amelyekkel Ön esetleg nem ismerkedik, tehát először bontjuk le őket.

Most egy dokumentum-orientált adatbázis működik azon az alapkoncepción, amely szerint az adatdokumentum „metaadatokat” tartalmaz, amelyek az adatok típusának azonosításához használt értékek, és megkönnyítik a tárolást és a szükséges letöltést. Nézzük például a következő két adatsort:

  • John Hancock
  • Építészmérnök

E két sor áttekintése révén képet kaphat arról, hogy ezek az adatok mit utalnak: az ember nevét és foglalkozását. Egy gép azonban nem tudja megkülönböztetni ezt a különbséget. Meg kell mondani az adatok típusát.

Egy RDB-ben ez a típus tárolható egy kulcsérték-tárolóban, amely maga a dokumentumtól külön van. Dokumentum-orientált adatbázis esetén azonban a kód beírásakor meg kell határoznia az adatok típusát. Tehát végül így írsz:

  • John Hancock
  • Építészmérnök

És oda megy; most az adatok típusát pontosan meghatározták a dokumentumban. Ez olyan rugalmasságot biztosít, amely az RDB-kben nem található meg, ezért a dokumentum-orientált adatbázisok annyira népszerűek a webes alkalmazásokban.

Végül is a webes alkalmazásokat rendszeresen módosítják és frissítik. Természetesen az RDB-knek is vannak előnyeik, és a dokumentum-orientált adatbázisok nem minden helyzetben tökéletesek, de ne térjünk le.

Most lépjünk át a JSON, BSON és a sémák oldalára. A JSON a JavaScript Object Notation-re utal, de valójában egy nyílt szabványos adatformátum, amely a JavaScript-től eltérő nyelvekkel is működhet.

A séma az adatbázis szerkezete, amelyet táblázatokként definiálnak az RDB-k esetében. Mivel a dokumentum-orientált adatbázisok nem használnak ilyen táblákat, alapvetően szerkezetmentesek vagy sémamentesek.

Ami a BSON-t illeti, ez csak a Binary JSON-t jelenti, és a MongoDB adatbázis adattárolási formátuma. Ennyi, amit ebben a szakaszban tudnia kell.

Az alapoktól kezdve nézzük meg, miért jó a MongoDB a webes alkalmazások készítéséhez:

Miért keresse a MongoDB-t?

Számos oka van annak, hogy a MongoDB népszerűségnek örvend a webes alkalmazások készítésében. A MongoDB nem tökéletes eszköz; valójában messze tőle. A MongoDB-nek számos kihívása van, és nem minden webes alkalmazáshoz megfelelő. A MongoDB azonban a következő okokból jól működik a webes alkalmazásokban:

  • A MongoDB séma nélküli

A MongoDB adatbázis dokumentumgyűjteményeket tárolhat, mindegyik dokumentumnak megvan a maga mérete, tartalma és mezőinek száma. Visszatérhet a kulcsértékek megváltoztatásához, vagy hozzáadhatja és törölheti azokat a kívánt módon.

Ez egy objektum felépítését is egyértelművé és egyértelművé teszi, és a MongoDB-t is könnyű méretezni, ha szükséges.

  • A MongoDB általános célú

Az adatbázis számos webes alkalmazáshoz használható, ideértve az ügyfelek adatainak kezelését, a tartalomkezelést, az adatközpontokat, a mobil alkalmazásokat, a tárgyak internetét, a Big Data, a termék- és eszközkatalógusokat, valamint az adatbázis-szolgáltatásként szolgáltatást.

  • A MongoDB támogatja az automatikus shardingot

A relációs adatbázisok általában vertikálisan méretezhetők, amelyben egyetlen szerver tárolja a teljes adatbázist. Ez korlátozhatja a működés mértékét, mivel a megoldás az, hogy vízszintesen és szervereket adunk hozzá, ahelyett, hogy a kapacitást egyetlen kiszolgálóra koncentrálnánk.

Az adatbázis megosztása ennek elkerülése érdekében történik, és a hardver egyetlen szerverként működik. A fejlesztőknek több relációs adatbázist kell telepíteniük a gépek között, és alkalmazási kódot kell kidolgozniuk az adatok elosztására, a lekérdezésekre és az eredmények összesítésére.

A MongoDB és más NoSQL adatbázisok támogatják az automatikus megosztást, ami azt jelenti, hogy automatikusan elosztják az adatokat a különféle szerverek között anélkül, hogy az alkalmazás tudatában lenne az összetételnek.

A MongoDB különösen hasznos a cloud computingnál. Fejlesztőként nem kell drága és összetett platformokat építenie a webes alkalmazások támogatására, hanem a tényleges alkalmazáskód írására összpontosíthat.

Néhány további kifejezés a MongoDB-ről

Rendben, tehát már lefedtük a MongoDB alapjait és előnyeit. Mielőtt piszkosan kezünk, nézzünk meg néhány további kifejezést, amelyeket ismernünk kell:

  • Adatbázis: egy adatbázis gyűjteményeket tartalmaz, és minden adatbázisnak saját fájlja van a fájlrendszeren. Egy tipikus MongoDB szervernek több adatbázisa lesz.
  • Gyűjtemény: a MongoDB dokumentumok egy csoportját gyűjteménynek nevezzük, és ez megegyezik az RDB-kben szereplő táblázatokkal. Az egyetlen adatbázisnak gyűjteménye lesz, és minden dokumentumnak külön mezõi vannak. A táblagépekkel ellentétben a gyűjteményeknek nincs sémája.
  • Dokumentum: A dokumentum kulcs-érték párok egy csomója, és dinamikus sémával rendelkezik, ami azt jelenti, hogy ugyanazon gyűjtemény különböző dokumentumai különböző mezőkészletekkel és struktúrákkal rendelkezhetnek.

    Ajánlott tanfolyamok

  • Ruby hibakeresési tanfolyamok
  • PHP MySQL programozási tréning
  • Online VB.NET programozási tréning
  • ITIL Alapítvány tanfolyam

Webes alkalmazások készítése

Az erre a MongoDB útmutatóra épülő webes alkalmazások olyan RSS-aggregátorok, mint a Google Reader. A webalkalmazásoknak két kulcsfontosságú összetevője lesz: A REST API és a Feed Grabber.

Ahhoz, hogy megértsük, mi a REST API, először tudnia kell egy kicsit a MEAN veremről. A takarmányfogó kódja a github könyvtárban is megtalálható.

A MEAN verem megértése:

A MEAN verem a következőket jelenti:

  1. MongoDB, amely az adatbázis a webes alkalmazás számára
  2. js, amely egy könnyű webes alkalmazási keret
  3. js, amely keretet nyújt JavaScript és HTML5 formátumban gazdag webes alkalmazások létrehozásához
  4. js, amely szerveroldali JavaScript értelmező

Az itt tárgyalt webes alkalmazásokhoz a REST API jön létre a HTML felhasználói felület helyett. A reprezentacionális állapotátviteli (REST) ​​API az XML-alapú API-k könnyebb alternatívája, és bármilyen interfésztípus számára alapjául szolgálhat, annak ellenére, hogy nincs felhasználói felület.

A REST funkciók egy kliens-szerver modellben, az ügyfél HTTP parancsokat küld a HTTP szervernek, a változó paraméterekkel együtt, amelyek a művelet célobjektumát leíró URL-be vannak kódolva. Ezután a szerver válaszol a JSON-tal és az eredménykóddal.

Most a MongDB és a JavaScript is jól reagál a JSON-ral, így a MEAN verem különösen alkalmassá válik a webes alkalmazásokra.

szifilisz

A CRUD betűszó a létrehozás, olvasás, frissítés és törlés kifejezést jelenti. Ezek olyan általános adatbázis-műveletek, amelyek HTTP formátumban fordításként, lekérésként, beillesztésként és törlésként fordíthatók le.

REST API létrehozása

Kezdjük egy REST API létrehozásával, a webes alkalmazások létrehozásának alapjainak kidolgozásával. Az alkalmazás lehet web alapú, vagy Android, iOS vagy más speciális platformok számára tervezhető. Először soroljuk fel azokat a dolgokat, amelyeket az alkalmazás képes végrehajtani:

  1. Engedélyezze a felhasználóknak fiók létrehozását
  2. Engedélyezze a hírcsatornák feliratkozását vagy leiratkozását
  3. Lehetővé teszi számukra, hogy olvassák és megjelöljék a takarmánybejegyzéseket olvasottként vagy olvasatlanként
  4. Kövesse nyomon az RSS-hírcsatornákat
  5. Tárolja a felhasználói információkat a megfelelő fiókokban
  6. A felhasználói hírcsatornák előfizetéseinek nyomon követése
  7. Kövesse nyomon a felhasználó által már olvasott hírcsatorna bejegyzést

Az adatok modellezése

A követelmények alapján a webes alkalmazásoknak négy gyűjteményre lesz szükségük az információk kezeléséhez:

  1. Felhasználói gyűjtemény
  2. Takarmánygyűjtemény
  3. Felhasználói hírcsatorna bejegyzés leképezési gyűjteménye
  4. Takarmánybejegyzés gyűjtemény

Itt közelebbről megnézem mindegyiket:

  • Takarmánygyűjtemény:

A következő JSON jó példa a hírcsatorna-gyűjtemény modellezésére:

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

A fenti JSON-dokumentum egy RSS-hírcsatorna a Reuters számára, amely nyomon követi a weboldalon közzétett legfrissebb hírekkel kapcsolatos információkat. Sok mezőt lát itt, de a webes alkalmazások működéséhez a legfontosabb a hírcsatorna URL-je és a hírcsatorna leírása.

Az URL fontos a tartalom megfelelő forrásból történő letöltéséhez, és a leírás azért fontos, mert összefoglalót nyújt a hírcsatorna számára.

Eközben a többi mező belső használatra szolgál. Hozzáadhat további, vagy eltávolíthat néhányat, ahogy érzi magát. A dokumentum tetején közvetlenül a _id mező található. Minden dokumentumnak tartalmaznia kell ezt a mezőt, és az azonosítónak egyedinek kell lennie.

A fenti példában egy azonosítót manuálisan hoztak létre a mezőhöz. Ha kihagyja ezt, a MongoDB automatikusan elkészíti azt.

  • A hírcsatorna bejegyzéseinek nyomon követése és gyűjtése

Ha további hírcsatornákat szeretne nyomon követni, akkor többet is hozzáadhat ezekhez a fenti formátumhoz. Miután befejezte a hírcsatornák hozzáadását, ideje nyomon követni és összegyűjteni azokat. Az alábbiakban bemutatjuk a takarmánybejegyzés gyűjteményét tartalmazó dokumentumot:

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

Megint láthatja a kitöltött _id mezőt, valamint néhány más mezőt, például a leírást, az összefoglalót és a címet. A tartalommező tömböt használ, és a MongoDB lehetővé teszi a tömbök számára a dokumentumok tárolását. Ez az aldokumentum-elrendezés különösen hasznos lehet olyan helyzetekben, amikor minden információt együtt kell tartani.

Jegyezze fel a feedID-t; ugyanolyan ObjectId típusú és az _id értékével rendelkezik, mint a Reuters hírcsatorna korábbi hírcsatorna-beviteli dokumentuma. Ez referenciamodellt kínál, így lekérdezheti a hírcsatorna-gyűjteményt azonos azonosítóértékkel, hogy visszatérjen a Reuters dokumentumhoz.

  • A felhasználó követése

Íme egy példa dokumentum a felhasználók nyomon követésére:

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

Itt a felhasználónak három kulcsattribútuma van: keresztnév, vezetéknév és e-mail cím. Két elem is használható a Stormpath felhasználói kezelő API-val: sp_api_key_secret és sp_api_key_id.

Az utolsó mező, az subs, az előfizetési tömb, és megmondja a hírcsatornát, amelyre a felhasználó előfizet.

  • Takarmánybejegyzés leképezése

A végső gyűjtemény lehetővé teszi a felhasználók leképezését és az olvasott hírcsatornák nyomon követését:

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

"read" : true,

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

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

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

Mint láthatja, a valódi / hamis logikai alapértékkel jelölik meg, hogy a hírcsatorna elolvasásra került-e vagy sem. Most a felhasználónak képesnek kell lennie a következő funkciók végrehajtására:

  1. Fiók létrehozása
  2. Feliratkozás vagy feliratkozás a hírcsatornákra
  3. Takarmánybejegyzések olvasása
  4. A hírcsatornák vagy bejegyzések olvasottként vagy olvasatlanként megjelölése
  5. Állítsa vissza a jelszót

Az alábbiakban felsoroljuk ezeket a műveleteket a HTTP útvonalakhoz és parancsokhoz.

ÚtvonalParancsLeírásváltozók
/ User / regisztrálniaPOSTRegisztráljon új felhasználótkeresztnév
vezetéknév
email
Jelszó
/ User / resetPasswordPUTJelszó visszaállításaemail
/ hírcsatornákKAPKérjen feed-előfizetéseket minden felhasználó számára leírással és olvasatlan számmal
/ Feed / feliratkozásPUTFeliratkozás egy új hírcsatornárafeedURL
/ Feed / bejegyzéseketKAPAz összes olyan hírcsatornához tartozó bejegyzés beolvasása, amelyre a felhasználó előfizet
/ Hírcsatornák // bejegyzésKAPAz összes bejegyzés lekérdezése egy adott hírcsatornához
/ Feed /PUTJelölje meg az adott hírcsatorna összes bejegyzését olvasottként vagy olvasatlankéntread =
/ Hírcsatornák // bejegyzés /PUTJelöljön meg egy adott bejegyzést olvasottként vagy olvasatlankéntread =
/ Feed /TÖRÖLLeiratkozás erről a hírcsatornáról

A biztonságos HTTP az a szokásos módszer, amellyel érzékeny adatokat, például jelszavakat küldünk a termelési környezetben

Következő lépések: valós hitelesítés

A felhasználói hitelesítés fontos a felhasználók, a jelszavak és az alaphelyzetbe állítás biztonságos kezelése szempontjából. A felhasználói fiókok hitelesítésére többféle mód van.

Használhat például egy Passport plugin-t a Node.js használatával, amely hasznos a Facebook, a Twitter és a közösségi média fiókok hitelesítéséhez.

A fenti példa a Stormpath használatától függ, amely egy REST API, amely támogatja az engedélyezést és a hitelesítést az API-kulcsokon keresztül, és felhasználói menedzsmentként szolgáltatást kínál.

Ajánlott cikkek

Íme néhány cikk, amelyek segítenek az MongoDB-t használó webes alkalmazások részletesebb megismerésében, ezért csak keresse meg a linket.

  1. HTML5 vs Flash izgatottan ismeri a különbséget?
  2. Java vs Node JS - 8 különbség, amelyet tudnia kell
  3. A Webes tesztelési alkalmazás hasznos és átfogó útmutató
  4. Websablonok használata HTML Alkalmazás | Mobil | Legjobb
  5. Szoftverfejlesztés vs. webfejlesztés
  6. Hogyan készítsünk elő web-elemző eszközöket az ön számára (útmutató)
  7. MongoDB vs PostgreSQL: Mik a különbségek?
  8. Hasznos útmutató a MongoDB és Hadoop oldalról
  9. A legjobb útmutató a MongoDB és Cassandra oldalról