Bude webinar "MongoDB Basics"

Abokai, wani ƙaddamar da kwas "Database" gobe za a yi, don haka mun gudanar da budaddiyar darasi na gargajiya, wanda za ku iya kallo a nan. A wannan lokacin mun yi magana game da sanannen bayanan MongoDB: mun yi nazarin wasu dabaru, mun kalli tushen aiki, iyawa da kuma gine-gine. Mun kuma tabo wasu Lambobin Masu Amfani.

Bude webinar "MongoDB Basics"

An gudanar da webinar Ivan Belt, shugaban ci gaban uwar garken a Citymobil.

MongoDB Features

MongoDB DBMS buɗaɗɗen tushen daftarin aiki ne wanda baya buƙatar bayanin tsarin tebur. An rarraba shi azaman NoSQL kuma yana amfani da BSON (binary JSON). Ana iya ƙididdigewa daga cikin akwatin, an rubuta a cikin C++ kuma yana goyan bayan rubutun JavaScript. Babu tallafin SQL.

MongoDB yana da direbobi don shahararrun yarukan shirye-shirye (C, C++, C#, Go, Java, JavaScript, Perl, PHP, Python, Ruby, da sauransu). Hakanan akwai direbobin da ba na hukuma ba da tallafin al'umma don wasu yarukan shirye-shirye.

To, bari mu dubi ainihin dokokin da za su iya zama masu amfani.

Don haka, don tura MongoDB a cikin Dockermun rubuta:

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

Ta haka ne yake faruwa kaddamar da abokin ciniki MongoDB:

Bude webinar "MongoDB Basics"

Yanzu bari mu rubuta na gargajiya Sannu Duniya:

print (“Hello world!”)

Bude webinar "MongoDB Basics"

Bayan haka- bari mu fara zagayowar:

Bude webinar "MongoDB Basics"

Kamar yadda kuka lura, kafin mu JS na yau da kullun, kuma MongoDB cikakken fassarar JavaScript ne.

Yaushe za a yi amfani da MongoDB?

Akwai labarin cewa matsakaicin farawa a Silicon Valley shine mutumin da ya buɗe littafin "HTML for Dummies" mako daya da suka wuce. Wanne tari zai zaba? Yarda cewa yana da matukar dacewa a gare shi lokacin, saboda dalilai masu ma'ana, yana da JavaScript a cikin burauzarsa, Node.js yana gudana akan uwar garken, kuma JavaScript yana gudana a cikin bayanan. Wannan ita ce aya ta 1.

Na biyu, akwai babban aiki Peter Zaitsev, daya daga cikin mafi kyau database kwararru a Rasha. A ciki, Bitrus yayi magana game da MySQL da MongoDB, yana ba da kulawa ta musamman ga lokacin da abin da ya fi dacewa don amfani.

Na uku, Ina so in jaddada cewa MongoDB yana da kyau scalability - kuma wannan yana ɗaya daga cikin mahimman abubuwan da ke cikin ma'ajin bayanai. Idan baku san a gaba menene nauyin zai kasance ba, MongoDB cikakke ne. Bugu da ƙari, yana goyan bayan ƙirar waje kamar su sharding и kwafi, kuma duk wannan ana yin shi a bayyane, wato, yana da matukar dacewa don aiki.

Game da kalmomi a MongoDB sai:

  • rumbun adana bayanai su ne bayanan bayanai (tsare-tsare, tarin tebura);
  • a MongoDB akwai irin wannan abu kamar tarin - wannan analogue ne na tebur da saitin takardu waɗanda, a ma'ana, yakamata a haɗa su;
  • takardun suna kwatankwacin kirtani.

Ƙirƙirar bayanan bayanai da tambayoyi masu sauƙi

Don ƙirƙirar bayanai, kawai kuna buƙatar fara amfani da shi:

use learn

Bude webinar "MongoDB Basics"

Yanzu bari mu yi ƙaramin saka daftarin aiki. Bari ya zama, alal misali, unicorn mai suna Aurora:

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

db - abu na duniya don shiga cikin bayanan, wato, a gaskiya, "monga" kanta. Ana amfani dashi don sharding sh, don maimaitawa - rs.

Wadanne umarni ne abin yake da shi? db:

Bude webinar "MongoDB Basics"

Don haka, bari mu koma ga umarninmu, sakamakon abin da na'ura wasan bidiyo zai ba da rahoton cewa an shigar da layi ɗaya:

Bude webinar "MongoDB Basics"

kalma unicorns a cikin tawaga db.unicorns.insert({name: 'Aurora', gender: 'f', weight: 450}) yana nuna tarin. Da fatan za a lura a nan cewa ba mu bayyana ko ƙirƙirar tarin ba, amma kawai mun rubuta 'unicorns', mun yi saka, kuma muna da tarin.

Kuma haka za mu iya sami duk tarin mu:

db.getCollectionNames()

Da sauransu. Can saka wani tarin:

Bude webinar "MongoDB Basics"

Yanzu bari mu tambaya cikakken tarin (Muna tunatar da ku cewa a cikin yanayinmu, bayanan sun riga sun ƙunshi bayanai game da unicorns guda biyu masu suna iri ɗaya):

db.unicorns.find()

Da fatan za a kula, ga JSON namu (akwai suna, jinsi, nauyi, wani mai gano abu na musamman):

Bude webinar "MongoDB Basics"

Yanzu bari mu saka wasu karin unicorns masu suna iri ɗaya:

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

Kuma bari mu ga abin da ya faru:

Bude webinar "MongoDB Basics"

Kamar yadda kuke gani, muna da ƙarin filayen: home и tsutsa, wanda Aurora ba shi da shi.

Bari mu ƙara wasu 'yan 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}])

Don haka, mun saka ƙarin abubuwa huɗu ta amfani da JavaScript:

Bude webinar "MongoDB Basics"

A cikin ra'ayin ku, a cikin waɗanne bayanai ne ya fi dacewa don adana bayanan fasfo: bayanan alaƙa ko Mongo?

Amsar a bayyane take - a Monga, kuma misalin da ke sama ya nuna wannan da kyau. Ba asiri ba ne cewa KLADR ciwo ne a cikin Tarayyar Rasha. Kuma Monga ya dace sosai tare da adireshi, saboda zaku iya saita komai azaman tsararru, kuma rayuwa zata kasance da sauƙi. Kuma yana da kyau Cajin mai amfani don MongoDB.

Bari mu ƙara ƙarin 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});

Bude webinar "MongoDB Basics"

Yanzu kula da takardun. Kamar yadda shekaru Muna adana dukkan abubuwa. Akwai kuma bayani game da abin da unicorn ke so, kuma ba kowa yana da wannan bayanin ba. Don haka cikin karya cikakken tsari.

Af, don nuna sakamakon da kyau, zaku iya kiran hanyar a ƙarshen umarnin bincike .pretty():

Bude webinar "MongoDB Basics"

Idan kana bukatar samun bayani game da sabon kuskure, yi amfani da umarni mai zuwa:

db.getLastError()

Ana iya yin wannan bayan kowace shigarwa, ko za ku iya saita damuwa Rubutun. Yana da kyau a karanta game da shi a ciki takardun shaida, wanda, ta hanyar, yana da bayanai sosai a Monga. Af, yana kuma samuwa akan Habré labari mai kyau a wannan lokaci.

Bari mu ci gaba zuwa ƙarin hadaddun tambayoyi

Tambaya don ainihin ƙimar filin:

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

Ta hanyar rubuta irin wannan buƙatar, za mu sami jerin duk unicorns maza a cikin kayan aikin wasan bidiyo.

Hakanan zaka iya yi tambaya akan fage da yawa lokaci guda: ta jinsi da nauyi:

Bude webinar "MongoDB Basics"

A sama, kula da na musamman $gt zaɓe, wanda ke ba ku damar kiwo duk nau'in unicorns maza masu nauyin fiye da 700.

Kuna iya dubawa shin filin ya wanzu?:

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

Ko kuma haka:

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

Tawagar ta gaba za ta fitar da unicorns, wanda sunayensu suka fara da haruffa A ko a:

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

Yanzu bari mu yi la'akari bincike tsararru. Tambaya #1: Menene wannan umarni zai fitar:

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

Haka ne: duk wanda ke son apples.

Umurnin da ke biyowa zai dawo da waɗannan bayanan unicorn kawai apples and watermelons kawai:

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

Da karin umarni guda:

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

A wajenmu, ba za ta mayar da komai ba, tunda idan muka wuce tsararru, ana kwatanta kashi na farko da na farko, na biyu da na biyu, da sauransu. ta matsayi wadannan dabi'u.

Kuma wannan shi ne yadda abin yake bincika ta hanyar tsararru ta amfani da ma'aikacin "OR".:

Bude webinar "MongoDB Basics"

Misali na gaba zai nuna mana bincika ta amfani da $all afareta. Kuma a nan jerin ba su da mahimmanci:

Bude webinar "MongoDB Basics"

Hakanan zamu iya bincika girman tsararru:

Bude webinar "MongoDB Basics"

Amma idan muna so mu sami tsararru wanda girmansa ya fi ɗaya fa? Akwai ma'aikaci don wannan $ku, wanda da su za ka iya rubuta ƙarin hadaddun abubuwa:

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

Af, idan kuna son yin aiki, akwai ka fayil tare da umarni.

Siffofin siginan kwamfuta

Bari mu ɗan ɗan yi ɗan ɗan faɗi kaɗan game da fasalin Monga:

  • Find () da sauran ayyukan ba su dawo da bayanai - suna dawo da abin da ake kira "cursor";
  • kasancewar muna ganin ana buga bayanan aikin mai fassara ne.

Bugawa db.unicorns.nemo ba tare da baka ba, muna samun saurin:

Bude webinar "MongoDB Basics"

Muna ci gaba da cika buƙatu

Hakanan akwai ma'aikacin $ in:

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

Bude webinar "MongoDB Basics"

Yanzu bari muyi magana game da sabuntawa. Misali, bari mu canza nauyin Rooooodles unicorn:

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

A sakamakon ayyukanmu, daftarin aiki za a sabunta gaba daya, kuma takamaiman fili guda ɗaya kawai zai rage a cikinsa:

Bude webinar "MongoDB Basics"

Wato, kawai abin da zai rage ga abin mu shine nauyin 2222 kuma, ba shakka, id.

Kuna iya gyara halin da ake ciki ta amfani da $saita:

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

Bude webinar "MongoDB Basics"

Hakanan yana yiwuwa haɓaka dabi'u:

Bude webinar "MongoDB Basics"

Kuma akwai kuma ɗauka - hadewar sabuntawa da sakawa:

Bude webinar "MongoDB Basics"

Ga yadda ake yi zaɓin filin:

Bude webinar "MongoDB Basics"

Bude webinar "MongoDB Basics"

Ya rage don ƙara 'yan kalmomi game da skip и iyaka:

Bude webinar "MongoDB Basics"

Abokan aiki, shi ke nan, idan kuna son sanin cikakkun bayanai, kalli bidiyon gaba daya. Kuma kar ku manta da barin sharhinku!

source: www.habr.com

Add a comment