Abokai, wani ƙaddamar da kwas
An gudanar da webinar
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:
Yanzu bari mu rubuta na gargajiya Sannu Duniya:
print (“Hello world!”)
Bayan haka- bari mu fara zagayowar:
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
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
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:
Don haka, bari mu koma ga umarninmu, sakamakon abin da na'ura wasan bidiyo zai ba da rahoton cewa an shigar da layi ɗaya:
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:
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):
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:
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:
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});
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()
:
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
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:
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".:
Misali na gaba zai nuna mana bincika ta amfani da $all afareta. Kuma a nan jerin ba su da mahimmanci:
Hakanan zamu iya bincika girman tsararru:
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,
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:
Muna ci gaba da cika buƙatu
Hakanan akwai ma'aikacin $ in:
db.unicorns.find({weight: {$in: [650, 704]}})
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:
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}})
Hakanan yana yiwuwa haɓaka dabi'u:
Kuma akwai kuma ɗauka - hadewar sabuntawa da sakawa:
Ga yadda ake yi zaɓin filin:
Ya rage don ƙara 'yan kalmomi game da skip и iyaka:
Abokan aiki, shi ke nan, idan kuna son sanin cikakkun bayanai,
source: www.habr.com