Tatala webinar "MongoDB Basics"

Uo, toe amatalia le isi kosi "Fa'amaumauga" o le a faia taeao, o lea na matou faia ai se lesona tatala masani, o le pueina lea e mafai ona e matamata ai iinei. O le taimi lea na matou talanoa ai e uiga i le lauiloa MongoDB database: na matou suʻesuʻeina nisi o mea faʻapitoa, vaʻavaʻai i faʻavae o le gaioiga, gafatia ma le fausaga. Na matou paʻi atu foʻi i nisi o Tagata Faʻaoga.

Tatala webinar "MongoDB Basics"

Sa faia le webinar Ivan Belt, ulu o le atinaʻeina o le server i Citymobil.

MongoDB Features

MongoDB o se DBMS faʻasinomaga faʻamatalaga tatala e le manaʻomia se faʻamatalaga o le faʻasologa o le laulau. O loʻo faʻavasegaina o le NoSQL ma faʻaoga BSON (binary JSON). Fa'asalaina mai le atigipusa, tusia i le C++ ma lagolagoina le JavaScript syntax. E leai se fesoasoani SQL.

MongoDB ei ai avetaʻavale mo le tele o gagana faʻalauiloa lauiloa (C, C ++, C #, Go, Java, JavaScript, Perl, PHP, Python, Ruby, ma isi). O lo'o iai fo'i aveta'avale e le'o aloa'ia ma e lagolagoina e le nu'u mo isi gagana polokalame.

Ia, seʻi o tatou vaʻavaʻai i tulafono faʻavae e mafai ona aoga.

O lea la, faʻapipiʻi MongoDB i Docker, matou te tusia:

docker run -it --rm -p 127.0.0.1:27017:27017 
--name mongo-exp-project mongo
docker exec -it mongo-exp-project mongo

E faapena ona tupu fa'alauiloa tagata o tausia MongoDB:

Tatala webinar "MongoDB Basics"

Se'i o tatou tusia le mea masani Talofa Lalolagi:

print (“Hello world!”)

Tatala webinar "MongoDB Basics"

Pe 'a uma lena - tatou amata le taamilosaga:

Tatala webinar "MongoDB Basics"

E pei ona e matauina, i luma o tatou masani JS, ma MongoDB ose fa'aliliuupu JavaScript atoatoa.

O afea e faʻaaoga ai MongoDB?

O loʻo i ai se tala o le averesi amata i Silicon Valley o le tagata na tatalaina le tusi "HTML for Dummies" i le vaiaso talu ai. O le fea faaputuga o le a ia filifilia? Ioe e faigofie tele mo ia pe a, mo mafuaaga manino, o loʻo ia te ia JavaScript i lana suʻesuʻega, Node.js o loʻo tamoʻe i luga o le 'auʻaunaga, ma o loʻo tamoʻe foi le JavaScript i le database. Ole numera numera 1 lea.

Lona lua, e iai maoae faatinoga Peter Zaitsev, o se tasi o tagata sili ona lelei faʻamaumauga faʻamaumauga i Rusia. I totonu, o loʻo talanoa Peteru e uiga i MySQL ma MongoDB, faʻapitoa i le taimi ma le mea e sili ona faʻaoga.

Lona tolu, ou te fia faamamafa atu o MongoDB o loʻo faʻaalia i le lelei scalability - ma o se tasi lea o vaega taua o le database. Afai e te le iloa muamua pe o le a le uta, MongoDB e atoatoa. E le gata i lea, e lagolagoina faʻataʻitaʻiga i fafo atu o le pusa e pei o vaevaega и toe faia, ma o nei mea uma e faia e matua manino lava, o lona uiga, e matua faigofie lava ona galue.

E tusa ai ma upu i MongoDB ona:

  • fa'amaumauga o fa'amaumauga (fuafuaga, aoina o laulau);
  • i MongoDB o loʻo i ai se mea e pei o le aoina - o se fa'atusa lea o se laulau ma se seti o pepa e tatau ona fa'afeso'ota'i;
  • o pepa e tutusa ma se manoa.

Fa'avae fa'amaumauga ma fesili faigofie

Ina ia fatuina se database, e tatau ona e amata faʻaaogaina:

use learn

Tatala webinar "MongoDB Basics"

Se'i o tatou faia se fa'aofi la'ititi o le pepa. Ia avea, mo se faʻataʻitaʻiga, se unicorn e igoa ia Aurora:

db.unicorns.insert({name: 'Aurora', gender: 'f', weight: 450})

db - o se mea faʻavaomalo mo le mauaina o faʻamaumauga, o lona uiga, o le "monga" lava ia. Fa'aaogaina mo le fa'asoa sh, mo le toe faia - rs.

O a ni poloaiga a le mea faitino? db:

Tatala webinar "MongoDB Basics"

O lea, tatou toe foʻi i la tatou poloaiga, o se taunuuga o le faʻamafanafanaga o le a lipotia ai le tasi laina ua faʻaofiina:

Tatala webinar "MongoDB Basics"

Le upu unicorns i se au db.unicorns.insert({name: 'Aurora', gender: 'f', weight: 450}) e fa'ailoa ai se fa'aputuga. Faamolemole ia matau iinei matou te lei faamatalaina pe fatuina le aoina, ae na o le tusia o 'unicorns', faia se faʻaofi, ma sa i ai sa matou aoina.

Ma o le auala lenei e mafai ai maua uma a matou aoina:

db.getCollectionNames()

Ma faapena atu ai lava. E mafai fa'aofi se isi aoina:

Tatala webinar "MongoDB Basics"

Sei o tatou fesili atu nei aoina atoatoa (Matou te faamanatu atu ia te oe i la matou tulaga o loʻo i ai i le database faʻamatalaga e uiga i le lua unicorns ma le igoa tutusa):

db.unicorns.find()

Faamolemole ia matau, o le matou JSON lenei (o loʻo i ai se igoa, itupa, mamafa, nisi faʻamatalaga mea faitino tulaga ese):

Tatala webinar "MongoDB Basics"

Se'i o tatou fa'aofia nisi unicorns e tutusa igoa:

db.unicorns.insert({name: 'Leto', gender: 'm', 
home: 'Arrakeen', worm: false}) 
db.unicorns.insert({name: 'Leto', gender: 'm', 
home: 'Arrakeen', worm: false})

Ma seʻi o tatou vaai i le mea na tupu:

Tatala webinar "MongoDB Basics"

E pei ona mafai ona e vaʻai, e iai a matou faʻalapotopotoga faaopoopo: aiga и anufe, lea e le maua e Aurora.

Se'i o tatou fa'aopoopo nisi unicorns:

db.unicorns.insertMany([{name: 'Horny', dob: new Date(1992,2,13,7,47), loves: ['carrot','papaya'], weight: 600, gender: 'm', vampires: 63}, 
{name: 'Aurora', dob: new Date(1991, 0, 24, 13, 0), loves: ['carrot', 'grape'], weight: 450, gender: 'f', vampires: 43}, 
{name: 'Unicrom', dob: new Date(1973, 1, 9, 22, 10), loves: ['energon', 'redbull'], weight: 984, gender: 'm', vampires: 182}, 
{name: 'Roooooodles', dob: new Date(1979, 7, 18, 18, 44), loves: ['apple'], weight: 575, gender: 'm', vampires: 99}])

O lea, na matou faʻaofiina isi mea e fa e faʻaaoga ai le JavaScript:

Tatala webinar "MongoDB Basics"

I lou manatu, o fea faʻamaumauga e sili atu ona faigofie e teu ai faʻamaumauga o tusifolau: fesoʻotaʻiga faʻamaumauga poʻo Mongo?

E manino le tali - i Monga, ma o le faʻataʻitaʻiga o loʻo i luga o loʻo faʻaalia lelei lenei mea. E le o se mea lilo o KLADR o se tiga i le Russian Federation. Ma o Monga e fetaui lelei ma tuatusi, aua e mafai ona e setiina mea uma o se laina, ma o le a sili atu ona faigofie le olaga. Ma o se mea lelei Tagata fa'aoga mo MongoDB.

Se'i o tatou fa'aopoopo nisi unicorns:

db.unicorns.insert({name: 'Solnara', dob: new Date(1985, 6, 4, 2, 1), loves:['apple', 'carrot', 'chocolate'], weight:550, gender:'f', vampires:80}); 
db.unicorns.insert({name:'Ayna', dob: new Date(1998, 2, 7, 8, 30), loves: ['strawberry', 'lemon'], weight: 733, gender: 'f', vampires: 40}); 
db.unicorns.insert({name:'Kenny', dob: new Date(1997, 6, 1, 10, 42), loves: ['grape', 'lemon'], weight: 690, gender: 'm', vampires: 39}); 
db.unicorns.insert({name: 'Raleigh', dob: new Date(2005, 4, 3, 0, 57), loves: ['apple', 'sugar'], weight: 421, gender: 'm', vampires: 2}); 
db.unicorns.insert({name: 'Leia', dob: new Date(2001, 9, 8, 14, 53), loves: ['apple', 'watermelon'], weight: 601, gender: 'f', vampires: 33}); 
db.unicorns.insert({name: 'Pilot', dob: new Date(1997, 2, 1, 5, 3), loves: ['apple', 'watermelon'], weight: 650, gender: 'm', vampires: 54}); 
db.unicorns.insert({name: 'Nimue', dob: new Date(1999, 11, 20, 16, 15), loves: ['grape', 'carrot'], weight: 540, gender: 'f'}); 
db.unicorns.insert({name: 'Dunx', dob: new Date(1976, 6, 18, 18, 18), loves: ['grape', 'watermelon'], weight: 704, gender: 'm', vampires: 165});

Tatala webinar "MongoDB Basics"

Faʻalogo nei i pepa. E pei o talipalau Matou te teuina mea uma. E iai foʻi faʻamatalaga e uiga i mea e fiafia i ai le unicorn, ma e le o tagata uma e maua lenei faʻamatalaga. O lo'o taoto i totonu fa'asologa atoa.

I le ala, e faʻaalia atili ai le matagofie o taunuuga, e mafai ona e valaʻau le metotia i le faaiuga o le suʻega poloaiga .pretty():

Tatala webinar "MongoDB Basics"

Afai e te manaʻomia e maua fa'amatalaga e uiga i le mea sese lata mai, fa'aaoga le poloaiga lenei:

db.getLastError()

E mafai ona faia lenei mea pe a uma fa'aofi ta'itasi, pe mafai fo'i ona e fa'atulaga le Tusi Fa'aliga. E sili atu le faitau i ai i totonu pepa aloaia, lea, i le ala, e matua faʻamatalaga i Monga. I le ala, o loʻo avanoa foʻi i Habré tala lelei i lenei taimi.

Se'i o tatou aga'i atu i fesili lavelave

Su'esu'ega mo le tau tonu o le fanua:

db.unicorns.find({gender: 'm'})

E ala i le tusiaina o sea talosaga, o le a matou mauaina se lisi o tama tane uma i totonu o le faʻamafanafanaga.

E mafai foi ona e faia fesili ile tele o fanua ile taimi e tasi: i le itupa ma le mamafa:

Tatala webinar "MongoDB Basics"

I luga, faʻalogo i le mea faʻapitoa $gt filifili, lea e mafai ai ona e fa'atupuina uma tama'i unicorn e sili atu i le 700 le mamafa.

E mafai ona e siaki e iai lava le fanua?:

db.unicorns.find({vampires: {$exists: false}})

A faʻapea:

db.unicorns.find({'parents.father': {$exists: true}})

O le isi au o le a aumaia i fafo unicorns, o ona igoa e amata i mataitusi A po o le a:

db.unicorns.find({name: {$regex: "^[Aa]"}})

Sei o tatou mafaufau nei su'esu'ega fa'asologa. Fesili #1: O le a le mea o le a faia e lenei poloaiga:

db.unicorns.find({loves:'apple'})

E sa'o: tagata uma e fiafia i apu.

O le fa'atonuga o lo'o mulimuli mai o le a toe fa'afo'i na'o na fa'amatalaga unicorn o lo'o iai na o apu ma meleni:

db.unicorns.find({loves:[ "apple", "watermelon" ]})

Ma le isi poloaiga:

db.unicorns.find({loves:[ "watermelon", "apple" ]})

I la tatou tulaga, o le a le toe faafoi mai se mea, talu ai pe a tatou pasia se laina, o le elemene muamua e faʻatusatusa i le muamua, o le lona lua ma le lona lua, ma isi. O lona uiga, e tatau foi ona fetaui le laina. e ala i le tulaga nei tulaga faatauaina.

Ma o le mea lea e foliga mai su'esu'e i se laina fa'aaoga le "OR" operator:

Tatala webinar "MongoDB Basics"

O le faʻataʻitaʻiga o loʻo mulimuli mai o le a faʻaalia mai ia i tatou su'esu'e ile fa'aoga $all operator. Ma o iinei e le taua le faasologa:

Tatala webinar "MongoDB Basics"

E mafai foi ona tatou su'esu'e i le lapopo'a:

Tatala webinar "MongoDB Basics"

Ae fa'apefea pe a tatou manana'o e su'e se fa'asologa o lona tele e sili atu i le tasi? O loʻo i ai se faʻalapotopotoga mo lenei mea $o fea, lea e mafai ona e tusia ai mea e sili atu ona faigata:

db.unicorns.find({$where: function() { return this.loves && (this.loves.length > 1) } })

I le ala, afai e te manaʻo e faʻataʻitaʻi, o iina oe faila ma poloaiga.

Fa'ailoga Fa'ailoga

Seʻi o tatou faʻasolosolo laʻititi ma fai atu ni nai upu e uiga i foliga o Monga:

  • find() ma isi gaioiga e le toe faʻafoʻi faʻamatalaga - latou te toe faʻafoʻi mai se mea e taʻua o le "cursor";
  • o le mea moni tatou te vaʻai i faʻamaumauga o loʻo lolomiina o le galuega lea a le faʻamatala.

Taina db.unicorns.find e aunoa ma ni puipui, matou te maua le vave:

Tatala webinar "MongoDB Basics"

Matou te faʻaauau pea ona faʻataunuʻuina talosaga

E iai fo'i le $in operator:

db.unicorns.find({weight: {$in: [650, 704]}})

Tatala webinar "MongoDB Basics"

Sei o tatou talanoa e uiga i le faafouga. Mo se faʻataʻitaʻiga, seʻi o tatou suia le mamafa o le Roooooodles unicorn:

db.unicorns.update({name: "Roooooodles"}, {weight: 2222})

O se taunuuga oa tatou gaioiga, o le pepa o le a toe faafou atoa, ma e na'o le tasi le fanua fa'apitoa o le a tumau i totonu:

Tatala webinar "MongoDB Basics"

O lona uiga, na o le pau lava le mea o le a tumau mo la tatou mea o le mamafa 2222 ma, ioe, id.

E mafai ona e faʻasaʻo le tulaga faʻaaoga $seti:

db.unicorns.update({_id: ObjectId("5da6ea4d9703b8be0089e6db")}, {$set: { "name" : "Roooooodles", "dob" : ISODate("1979-08-18T18:44:00Z"), "loves" : [ "apple" ], "gender" : "m", "vampires" : 99}})

Tatala webinar "MongoDB Basics"

E mafai foi tau fa'aopoopo:

Tatala webinar "MongoDB Basics"

Ma e iai foʻi fa'anoanoa - tu'ufa'atasiga o fa'afouga ma fa'aofi:

Tatala webinar "MongoDB Basics"

O le auala lea e fai ai filifiliga fanua:

Tatala webinar "MongoDB Basics"

Tatala webinar "MongoDB Basics"

O loʻo tumau pea le faʻaopoopoina o nai upu e uiga i faaseʻe и tapulaʻa:

Tatala webinar "MongoDB Basics"

Paʻaga, pau lava, pe a e fia iloa faʻamatalaga, matamata i le vitio atoa. Ma 'aua ne'i galo e tu'u au fa'amatalaga!

puna: www.habr.com

Faaopoopo i ai se faamatalaga