Водич за Ноде.јс МонгоДБ са примерима

Преглед садржаја:

Anonim

Углавном све савремене веб апликације имају некакав систем за складиштење података на позадини. На пример, ако узмете случај апликације за веб куповину, подаци као што је цена предмета чуваће се у бази података.

Оквир Ноде јс може да ради са базама података како са релационим (као што су Орацле и МС СКЛ Сервер), тако и са нерелационим базама података (као што је МонгоДБ). У овом упутству ћемо видети како можемо користити базе података из Ноде јс апликација.

У овом упутству ћете научити-

  • Ноде.јс и НоСКЛ базе података
  • Коришћење МонгоДБ и Ноде.јс
  • Како изградити нод екпресс апликацију са МонгоДБ за чување и послуживање садржаја

Ноде.јс и НоСКЛ базе података

Током година, базе података НоСКЛ попут МонгоДБ и МиСКЛ постале су прилично популарне као базе података за складиштење података. Способност ових база података да чувају било коју врсту садржаја, посебно у било којој врсти формата, чини оно што ове базе података чине тако познатима.

Ноде.јс има могућност рада са МиСКЛ и МонгоДБ као базама података. Да бисте користили било коју од ових база података, потребно је да преузмете и користите потребне модуле помоћу управитеља пакета Ноде.

За МиСКЛ потребан модул се назива „мискл“, а за употребу МонгоДБ потребан модул који треба инсталирати је „Монгоосе“.

Помоћу ових модула можете да извршите следеће операције у Ноде.јс

  1. Управљање спремањем веза - Овде можете одредити број веза МиСКЛ базе података које би Ноде.јс требало да одржава и чува.
  2. Створите и затворите везу са базом података. У оба случаја можете обезбедити функцију повратног позива која се може позвати кад год се изврше методе повезивања „креирај“ и „затвори“.
  3. Упити се могу извршити за добијање података из одговарајућих база података за преузимање података.
  4. Овим модулима се такође може постићи манипулација подацима, попут уметања података, брисања и ажурирања података.

За преостале теме погледаћемо како можемо радити са базама података МонгоДБ у оквиру Ноде.јс.

Коришћење МонгоДБ и Ноде.јс

Као што је дискутовано у претходној теми, МонгоДБ је једна од најпопуларнијих база података које се користе заједно са Ноде.јс.

Током овог поглавља видећемо

Како можемо успоставити везе са МонгоДБ базом података

Како можемо обављати уобичајене операције читања података из базе података, као и уметање, брисање и ажурирање записа у МонгоДБ бази података.

У сврху овог поглавља, претпоставимо да имамо доле наведене МонгоДБ податке.

Име базе података: ЕмплоиееДБ

Име колекције: Запослени

Documents{{Employeeid : 1, Employee Name : Guru99},{Employeeid : 2, Employee Name : Joe},{Employeeid : 3, Employee Name : Martin},}
  1. Инсталирање НПМ модула

Потребан вам је управљачки програм за приступ Монго-у из Ноде апликације. Доступно је више монго управљачких програма, али МонгоДБ је међу најпопуларнијим. Да бисте инсталирали МонгоДБ модул, покрените наредбу испод

нпм инсталирати монгодб

  1. Стварање и затварање везе са МонгоДБ базом података. Доле наведени фрагмент кода показује како створити и затворити везу са МонгоДБ базом података.

Објашњење кода:

  1. Први корак је укључивање модула монгоосе, што се врши путем функције рекуире. Једном када је овај модул постављен, можемо користити потребне функције доступне у овом модулу за стварање веза са базом података.
  2. Даље, специфицирамо наш низ везе са базом података. У стрингу за повезивање постоје 3 кључне вредности које се преносе.
  • Прва је „монгодб“ која прецизира да се повезујемо са монгоДБ базом података.
  • Следећи је „лоцалхост“, што значи да се повезујемо са базом података на локалној машини.
  • Следеће је „ЕмплоиееДБ“, што је назив базе података дефинисане у нашој бази података МонгоДБ.
  1. Следећи корак је заправо повезивање са нашом базом података. Функција повезивања узима наш УРЛ и има могућност спецификације функције повратног позива. Позваће се када се веза отвори према бази података. То нам даје прилику да знамо да ли је веза са базом података била успешна или не.
  2. У функцији на конзолу записујемо низ „Веза успостављена“ да би означила да је успостављена успешна веза.
  3. Коначно, везу прекидамо помоћу израза дб.цлосе.

Ако се горњи код правилно изврши, на конзолу ће се записати низ "Повезано" као што је приказано доле.

  1. Упит за податке у МонгоДБ бази података - Коришћењем МонгоДБ управљачког програма такође можемо дохватити податке из МонгоДБ базе података.

    Одељак у наставку ће показати како помоћу управљачког програма можемо преузети све документе из наше колекције запослених у нашој бази података ЕмплоиееДБ. Ово је збирка у нашој бази података МонгоДБ, која садржи све документе који се односе на запослене. Сваки документ има ИД објекта, име запосленог и ИД запосленика за дефинисање вредности документа.

var MongoClient = require('mongodb').MongoClient;var url = 'mongodb://localhost/EmployeeDB';MongoClient.connect(url, function(err, db) {var cursor = db.collection('Employee').find();cursor.each(function(err, doc) {console.log(doc);});}); 

Објашњење кода:

  1. У првом кораку креирамо курсор (Курсор је показивач који се користи за упућивање на различите записе преузете из базе података. Курсор се затим користи за итерацију кроз различите записе у бази података. Овде дефинишемо име променљиве названо курсор које ће се користити за чување показивача на записе преузете из базе података.) који упућује на записе преузете из колекције МонгоДб. Такође имамо могућност прецизирања колекције „Запослени“ из које ћемо преузети евиденцију. Функција финд () се користи за одређивање да желимо да преузмемо све документе из МонгоДБ колекције.

  2. Сада вршимо итерацију кроз наш курсор и за сваки документ у курсору ћемо извршити функцију.

  3. Наша функција је једноставно штампање садржаја сваког документа на конзоли.

Напомена: - Такође је могуће преузети одређени запис из базе података. То се може учинити специфицирањем услова претраживања у функцији финд (). На пример, претпоставимо да ако сте само желели да преузмете запис који има име запосленог као Гуру99, онда се ова изјава може написати на следећи начин

var cursor=db.collection('Employee').find({EmployeeName: "guru99"})

Ако се горњи код успешно изврши, следећи излаз ће се приказати на вашој конзоли.

Излаз:

Из резултата,

  • Моћи ћете јасно да видите да су преузети сви документи из колекције. То је могуће коришћењем методе финд () монгоДБ везе (дб) и итерирањем кроз све документе помоћу курсора.
  1. Уметање докумената у колекцију - документи се могу уметнути у колекцију методом инсертОне коју обезбеђује МонгоДБ библиотека. Исечак кода у наставку показује како можемо уметнути документ у монгоДБ колекцију.

var MongoClient = require('mongodb').MongoClient;var url = 'mongodb://localhost/EmployeeDB';MongoClient.connect(url, function(err, db) {db.collection('Employee').insertOne({Employeeid: 4,EmployeeName: "NewEmployee"});});

Објашњење кода:

  1. Овде користимо методу инсертОне из библиотеке МонгоДБ за уметање документа у колекцију запослених.
  2. Наводимо детаље документа о томе шта треба убацити у колекцију запослених.

Ако сада проверите садржај своје базе података МонгоДБ, пронаћи ћете запис са Емплоиееид од 4 и ЕмплоиееНаме од "НевЕ Емплоиее" уметнут у колекцију Емплоиее.

Напомена: Конзола неће приказати излаз, јер се запис убацује у базу података и овде се не може приказати излаз.

Да бисте проверили да ли су подаци правилно уметнути у базу података, потребно је да извршите следеће наредбе у МонгоДБ

  1. Користите ЕмплоиееДБ
  2. дб.Еффициее.финд ({Емплоиееид: 4})

Прва изјава осигурава да сте повезани са базом података ЕмплоиееДб. Друга изјава тражи запис који има идентификатор запосленог 4.

  1. Ажурирање докумената у колекцији - Документи се могу ажурирати у колекцији помоћу методе упдатеОне коју пружа библиотека МонгоДБ. Исечак кода у наставку показује како се ажурира документ у монгоДБ колекцији.

var MongoClient = require('mongodb').MongoClient;var url = 'mongodb://localhost/EmployeeDB';MongoClient.connect(url, function(err, db) {db.collection('Employee').updateOne({"EmployeeName": "NewEmployee"}, {$set: {"EmployeeName": "Mohan"}});});

Објашњење кода:

  1. Овде користимо методу „упдатеОне“ из библиотеке МонгоДБ, која се користи за ажурирање документа у монгоДБ колекцији.
  2. Ми прецизирамо критеријуме за претрагу који документ треба ажурирати. У нашем случају желимо да пронађемо документ који има ЕмплоиееНаме „НевЕ Емплоиее“.
  3. Затим желимо да подесимо вредност ЕмплоиееНаме документа са „НевЕ Емплоиее“ на „Мохан“.

Ако сада проверите садржај базе података МонгоДБ, пронаћи ћете запис са Емплоиееид од 4 и ЕмплоиееНаме из „Мохан“ ажуриран у колекцији Емплоиее.

Да бисте проверили да ли су подаци исправно ажурирани у бази података, потребно је да извршите следеће наредбе у МонгоДБ

  1. Користите ЕмплоиееДБ
  2. дб.Еффициее.финд ({Емплоиееид: 4})

Прва изјава осигурава да сте повезани са базом података ЕмплоиееДб. Друга изјава тражи запис који има идентификатор запосленог 4.

  1. Брисање докумената у колекцији - документи се могу брисати у колекцији методом „делетеОне“ коју пружа библиотека МонгоДБ. Исечак кода у наставку показује како да избришете документ у монгоДБ колекцији.

var MongoClient = require('mongodb').MongoClient;var url = 'mongodb://localhost/EmployeeDB';MongoClient.connect(url, function(err, db) {db.collection('Employee').deleteOne({"EmployeeName": "Mohan"});});

Објашњење кода:

  1. Овде користимо методу "делетеОне" из библиотеке МонгоДБ, која се користи за брисање документа у збирци монгоДБ.
  2. Наводимо критеријуме за претрагу који документ треба избрисати. У нашем случају желимо да пронађемо документ који има Име запосленог у „Мохан“ и да га избришемо.

Ако сада проверите садржај базе података МонгоДБ, пронаћи ћете запис са Емплоиееид од 4 и ЕмплоиееНаме из "Мохан" избрисан из колекције Емплоиее.

Да бисте проверили да ли су подаци исправно ажурирани у бази података, потребно је да извршите следеће наредбе у МонгоДБ

  1. Користите ЕмплоиееДБ
  2. дб.Емплоиментее.финд ()

Прва изјава осигурава да сте повезани са базом података ЕмплоиееДб. Друга изјава претражује и приказује све записе у колекцији запослених. Овде можете видети да ли је запис избрисан или не.

Како изградити нод екпресс апликацију са МонгоДБ за чување и послуживање садржаја

Изградња апликације комбинацијом обе верзије помоћу Екпресс-а и МонгоДБ-а данас је прилично честа.

Када радите са ЈаваСцрипт веб-апликацијама, овде се обично користи термин МЕАН стацк.

  • Термин МЕАН стог односи се на колекцију технологија заснованих на ЈаваСцрипт-у који се користе за развој веб апликација.
  • МЕАН је скраћеница за МонгоДБ, ЕкпрессЈС, АнгуларЈС и Ноде.јс.

Стога је увек добро разумети како Ноде.јс и МонгоДБ раде заједно како би испоручили апликације које комуницирају са позадинским базама података.

Погледајмо једноставан пример како можемо заједно да користимо „екпресс“ и „МонгоДБ“. Наш пример ће користити исту колекцију запослених у бази података МонгоДБ ЕмплоиееДБ.

Сада ћемо уградити Екпресс да приказује податке на нашој веб страници када то корисник затражи. Када се наша апликација изводи на Ноде.јс, можда ће требати потражити УРЛ хттп: // лоцалхост: 3000 / Емплоиееид .

Када се страница покрене, приказаће се сви ИД запосленог у колекцији Емплоиее. Дакле, погледајмо исечак кода у одељцима који ће нам омогућити да то постигнемо.

Корак 1) Дефинишите све библиотеке које треба да се користе у нашој апликацији, што је у нашем случају и МонгоДБ и екпресс библиотека.

Објашњење кода:

  1. Дефинишемо нашу „експресну“ библиотеку која ће се користити у нашој апликацији.
  2. Ми дефинишемо нашу „експресну“ библиотеку која ће се користити у нашој апликацији за повезивање са нашом МонгоДБ базом података.
  3. Овде дефинишемо УРЛ наше базе података за повезивање.
  4. На крају, дефинишемо низ који ће се користити за чување наше колекције ИД-а запослених који ће касније бити приказани у прегледачу.

Корак 2) У овом кораку ћемо сада добити све записе из наше колекције 'Запослени' и у складу с тим радити.

Објашњење кода:

  1. Креирамо пут до наше апликације под називом „Емплоиееид“. Дакле, кад год неко прегледа хттп: // лоцалхост: 3000 / Емплоиееид наше апликације, извршиће се исечак кода дефинисан за ову руту.
  2. Овде добијамо све записе у нашој колекцији 'Емплоиее' преко команде дб.цоллецтион ('Емплоиее'). Финд (). Затим ову колекцију додељујемо променљивој која се назива курзор. Користећи ову променљиву курсора, моћи ћемо да претражимо све записе колекције.
  3. Сада користимо функцију цурсор.еацх () за кретање кроз све записе наше колекције. За сваки запис дефинисаћемо исечак кода о томе шта треба радити када се приступи сваком запису.
  4. Коначно, видимо да ако враћени запис није нулл, онда водимо запосленог путем команде "итем.Е Емплоиееид". Остатак кода је само за стварање исправног ХТМЛ кода који ће омогућити да се наши резултати правилно прикажу у прегледачу.

Корак 3) У овом кораку ћемо послати свој излаз на веб страницу и учинити да наша апликација слуша на одређеном порту.

Објашњење кода:

  1. Овде шаљемо целокупан садржај који је направљен у претходном кораку на нашу веб страницу. Параметар 'рес' омогућава нам слање садржаја на нашу веб страницу као одговор.
  2. Чинимо да наша целокупна апликација Ноде.јс преслушава на порту 3000.

Излаз:

Из резултата,

  • Јасно показује да су преузети сви запослени из колекције Емплоиее. То је зато што користимо МонгоДБ управљачки програм за повезивање са базом података и преузимање свих евиденција запослених, а затим користимо „екпресс“ за приказ записа.

Ево кода за вашу референцу

var express = require('express');var app = express();var MongoClient = require('mongodb').MongoClient;var url = 'mongodb://localhost/EmployeeDB';var str = "";app.route('/Employeeid').get(function(req, res){MongoClient.connect(url, function(err, db) {var cursor = db.collection('Employee').find();//noinspection JSDeprecatedSymbolscursor.each(function(err, item) {if (item != null) {str = str + " Employee id " + item.Employeeid + "
";}});res.send(str);db.close();});});var server = app.listen(3000, function() {});

Напомена: цурсор.еацх је можда застарео на основу верзије вашег МонгоДБ управљачког програма. Можете додати // ноинспецтион ЈСДепрецатедСимболс пре курсора.еацх да заобиђете проблем. Можете и да користите форЕацх. Испод је пример кода који користи форЕацх

var express = require('express');var app = express();var MongoClient = require('mongodb').MongoClient;var url = 'mongodb://localhost/EmployeeDB';var str = "";app.route('/Employeeid').get(function(req, res) {MongoClient.connect(url, function(err, db) {var collection = db.collection('Employee');var cursor = collection.find({});str = "";cursor.forEach(function(item) {if (item != null) {str = str + " Employee id " + item.Employeeid + "
";}}, function(err) {res.send(err);db.close();});});});var server = app.listen(8080, function() {});

Резиме

  • Ноде.јс се користи заједно са НоСКЛ базама података за изградњу многих савремених веб апликација. Неке од уобичајених база података које се користе су МиСКЛ и МонгоДБ.
  • Један од уобичајених модула који се користе за рад са базама података МонгоДБ је модул назван „МонгоДБ“. Овај модул се инсталира преко управитеља пакета Ноде.
  • Помоћу МонгоДБ модула могуће је тражити записе у колекцији и изводити уобичајене операције ажурирања, брисања и уметања.
  • Коначно, једна од модерних пракси је употреба изричитог оквира заједно са МонгоДБ за испоруку савремених апликација. Екпресс фрамеворк може користити податке које враћа управљачки програм МонгоДБ и у складу с тим приказати податке кориснику на веб страници.