Awọn ọrẹ, ifilọlẹ ikẹkọ miiran
Webinar ti waye
MongoDB Awọn ẹya ara ẹrọ
MongoDB jẹ DBMS ti o da lori iwe orisun ṣiṣi ti ko nilo ijuwe ti ero tabili. O ti pin si NoSQL o si nlo BSON (alakomeji JSON). Ṣe iwọn jade kuro ninu apoti, ti a kọ sinu C ++ ati atilẹyin sintasi JavaScript. Ko si atilẹyin SQL.
MongoDB ni awọn awakọ fun ọpọlọpọ awọn ede siseto olokiki (C, C++, C #, Go, Java, JavaScript, Perl, PHP, Python, Ruby, bbl). Awọn awakọ laigba aṣẹ ati atilẹyin agbegbe tun wa fun awọn ede siseto miiran.
O dara, jẹ ki a wo awọn aṣẹ ipilẹ ti o le wulo.
Nitorinaa, lati mu MongoDB ṣiṣẹ ni Docker, a kọ:
docker run -it --rm -p 127.0.0.1:27017:27017
--name mongo-exp-project mongo
docker exec -it mongo-exp-project mongo
Bayi ni o ṣẹlẹ ifilọlẹ onibara MongoDB:
Bayi jẹ ki a kọ ibile Kaabo World:
print (“Hello world!”)
Lẹhinna - jẹ ki ká bẹrẹ awọn ọmọ:
Bi o ti ṣe akiyesi, ṣaaju ki o to wa JS deede, ati MongoDB jẹ olutumọ JavaScript ti o ni kikun.
Nigbawo lati lo MongoDB?
Itan kan wa pe ibẹrẹ apapọ ni Silicon Valley ni eniyan ti o ṣii iwe “HTML fun Dummies” ni ọsẹ kan sẹhin. Àkópọ̀ wo ló máa yàn? Gba pe o rọrun pupọ fun u nigbati, fun awọn idi ti o han gbangba, o ni JavaScript ninu ẹrọ aṣawakiri rẹ, Node.js nṣiṣẹ lori olupin naa, ati JavaScript tun nṣiṣẹ ni ibi ipamọ data. Eyi ni aaye nọmba 1.
Ẹlẹẹkeji, nibẹ ni
Ni ẹkẹta, Emi yoo fẹ lati fi rinlẹ pe MongoDB jẹ ẹya ti o dara scalability - ati pe eyi jẹ ọkan ninu awọn ẹya pataki ti data data. Ti o ko ba mọ tẹlẹ kini ẹru naa yoo jẹ, MongoDB jẹ pipe. Ni afikun, o ṣe atilẹyin awọn ilana ita-jade gẹgẹbi sharding и isodipupo, ati gbogbo eyi ni a ṣe ni gbangba, iyẹn ni, o rọrun pupọ lati ṣiṣẹ.
Pẹlu iyi si ọrọ-ọrọ ni MongoDB lẹhinna:
- awọn apoti isura infomesonu jẹ awọn apoti isura infomesonu (awọn eto, awọn akojọpọ awọn tabili);
- ni MongoDB iru nkan wa bi gbigba - eyi jẹ afọwọṣe ti tabili kan ati ṣeto awọn iwe aṣẹ ti, ni oye, yẹ ki o sopọ;
- awọn iwe aṣẹ jẹ afiwera si okun kan.
Ṣiṣẹda aaye data ati awọn ibeere ti o rọrun
Lati ṣẹda aaye data kan, o kan nilo lati bẹrẹ lilo rẹ:
use learn
Bayi jẹ ki a ṣe ifibọ kekere ti iwe-ipamọ naa. Jẹ ki o jẹ, fun apẹẹrẹ, unicorn kan ti a npè ni Aurora:
db.unicorns.insert({name: 'Aurora', gender: 'f', weight: 450})
db - ohun kan agbaye fun iraye si ibi ipamọ data, iyẹn ni, ni otitọ, “monga” funrararẹ. Lo fun sharding sh, fun ẹda- rs.
Awọn aṣẹ wo ni nkan naa ni? db:
Nitorinaa, jẹ ki a pada si aṣẹ wa, nitori abajade eyiti console yoo jabo pe a ti fi sii laini kan:
Ọrọ naa unicorns
ninu egbe kan db.unicorns.insert({name: 'Aurora', gender: 'f', weight: 450})
ntọka si gbigba. Jọwọ ṣakiyesi nibi pe a ko ṣapejuwe tabi ṣẹda ikojọpọ, ṣugbọn nirọrun kọ 'unicorns', ṣe ifibọ, ati pe a ni ikojọpọ kan.
Ati pe eyi ni bii a ṣe le gba gbogbo awọn akojọpọ wa:
db.getCollectionNames()
Ati bẹbẹ lọ. Le fi omiran sii gbigba:
Bayi jẹ ki a beere pipe gbigba (a leti pe ninu ọran wa database ti ni alaye tẹlẹ nipa awọn unicorns meji pẹlu orukọ kanna):
db.unicorns.find()
Jọwọ ṣakiyesi, eyi ni JSON wa (orukọ kan wa, akọ-abo, iwuwo, diẹ ninu idanimọ ohun alailẹgbẹ):
Bayi jẹ ki a fi sii tọkọtaya diẹ sii unicorns pẹlu awọn orukọ kanna:
db.unicorns.insert({name: 'Leto', gender: 'm',
home: 'Arrakeen', worm: false})
db.unicorns.insert({name: 'Leto', gender: 'm',
home: 'Arrakeen', worm: false})
Ati jẹ ki a wo ohun ti o ṣẹlẹ:
Bi o ti le rii, a ni awọn aaye afikun: ile и alagidi, eyi ti Aurora ko ni.
Jẹ ki a ṣafikun awọn unicorn diẹ sii:
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}])
Nitorinaa, a fi sii awọn nkan mẹrin diẹ sii nipa lilo JavaScript:
Ninu ero rẹ, ninu awọn apoti isura infomesonu wo ni o rọrun diẹ sii lati tọju data iwe irinna: awọn apoti isura data ibatan tabi Mongo?
Idahun si jẹ kedere - ni Monga, ati awọn loke apẹẹrẹ fihan yi daradara. Kii ṣe aṣiri pe KLADR jẹ irora ni Russian Federation. Ati Monga ni ibamu daradara pẹlu awọn adirẹsi, nitori o le ṣeto ohun gbogbo bi opo, ati pe igbesi aye yoo rọrun pupọ. Ati pe o jẹ ọkan ti o dara Apo olumulo fun MongoDB.
Jẹ ki a ṣafikun awọn unicorns diẹ sii:
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});
Bayi san ifojusi si awọn iwe aṣẹ. Bi ilu A tọju gbogbo awọn nkan. Alaye tun wa nipa ohun ti unicorn fẹràn, ati pe kii ṣe gbogbo eniyan ni alaye yii. Nitorina inu irọ kikun orun.
Nipa ọna, lati ṣafihan awọn abajade diẹ sii ni ẹwa, o le pe ọna ni ipari aṣẹ wiwa .pretty()
:
Ti o ba nilo lati gba alaye nipa awọn titun aṣiṣe, lo aṣẹ wọnyi:
db.getLastError()
Eyi le ṣee ṣe lẹhin fifi sii kọọkan, tabi o le tunto Ibakcdun Kọ. O dara lati ka nipa rẹ ninu
Jẹ ká lọ siwaju si eka sii ibeere
Ibeere fun iye aaye gangan:
db.unicorns.find({gender: 'm'})
Nipa kikọ iru ibeere kan, a yoo gba atokọ ti gbogbo awọn unicorns akọ ninu iṣelọpọ console.
O tun le ṣe ibeere lori orisirisi awọn aaye ni ẹẹkan: nipa abo ati nipa iwuwo:
Loke, san ifojusi si pataki $gt yiyan, eyiti o fun ọ laaye lati ṣe ajọbi gbogbo awọn unicorns akọ ti o ni iwuwo diẹ sii ju 700.
O le ṣayẹwo Ṣe aaye naa wa rara?:
db.unicorns.find({vampires: {$exists: false}})
Tabi bẹ:
db.unicorns.find({'parents.father': {$exists: true}})
Ẹgbẹ ti o tẹle yoo mu awọn unicorns jade, orukọ ẹniti o bẹrẹ pẹlu awọn lẹta A tabi a:
db.unicorns.find({name: {$regex: "^[Aa]"}})
Bayi jẹ ki ká ro wiwa orun. Ibeere #1: Kini aṣẹ yii yoo jade:
db.unicorns.find({loves:'apple'})
Iyẹn tọ: gbogbo eniyan ti o nifẹ apples.
Aṣẹ atẹle yoo da data Unicorn nikan ti o ni nikan apples ati watermelons:
db.unicorns.find({loves:[ "apple", "watermelon" ]})
Ati aṣẹ kan diẹ sii:
db.unicorns.find({loves:[ "watermelon", "apple" ]})
Ninu ọran tiwa, kii yoo da ohunkohun pada, nitori pe nigba ti a ba kọja opo kan, ipin akọkọ ni a fiwera pẹlu ti akọkọ, ekeji pẹlu ekeji, bbl Iyẹn ni, opo naa gbọdọ tun baamu. nipa ipo awọn iye wọnyi.
Ati pe eyi ni ohun ti o dabi wiwa nipasẹ ohun orun nipa lilo awọn "OR" onišẹ:
Apajlẹ he bọdego na do mí hia wa nipa lilo $all onišẹ. Ati pe nibi ọna ti ko ṣe pataki:
Bakannaa a le ṣewadii pẹlu iwọn titobi:
Ṣugbọn kini ti a ba fẹ wa akojọpọ ti iwọn rẹ tobi ju ọkan lọ? Onišẹ kan wa fun eyi $ibiti, pẹlu eyiti o le kọ awọn nkan ti o nipọn diẹ sii:
db.unicorns.find({$where: function() { return this.loves && (this.loves.length > 1) } })
Nipa ọna, ti o ba fẹ ṣe adaṣe,
Kọsọ Awọn ẹya ara ẹrọ
Jẹ ki a digress diẹ diẹ ki o sọ awọn ọrọ diẹ nipa awọn ẹya ti Monga:
- ri () ati awọn iṣẹ miiran ko da data pada - wọn da ohun ti a pe ni “kọsọ” pada;
- otitọ pe a rii data ti a tẹjade jẹ iṣẹ ti onitumọ.
Titẹ db.unicorns.ri laisi akomo, a gba itọsi naa:
A tesiwaju lati mu awọn ibeere ṣẹ
Oṣiṣẹ $in tun wa:
db.unicorns.find({weight: {$in: [650, 704]}})
Bayi jẹ ki a sọrọ nipa imudojuiwọn. Fun apẹẹrẹ, jẹ ki a yi iwuwo Rooooodles unicorn pada:
db.unicorns.update({name: "Roooooodles"}, {weight: 2222})
Bi abajade awọn iṣe wa, iwe-ipamọ naa yoo wa ni imudojuiwọn patapata, ati pe aaye kan pato yoo wa ninu rẹ:
Iyẹn ni, ohun kan ti yoo wa fun nkan wa ni iwuwo 2222 ati, dajudaju, id.
O le ṣe atunṣe ipo naa nipa lilo $ ṣeto:
db.unicorns.update({_id: ObjectId("5da6ea4d9703b8be0089e6db")}, {$set: { "name" : "Roooooodles", "dob" : ISODate("1979-08-18T18:44:00Z"), "loves" : [ "apple" ], "gender" : "m", "vampires" : 99}})
O tun ṣee ṣe awọn iye afikun:
Ati pe o wa tun igbega - apapo ti imudojuiwọn ati fi sii:
Eyi ni bi o ti ṣe aṣayan aaye:
O wa lati ṣafikun awọn ọrọ diẹ nipa foo и iye:
Awọn ẹlẹgbẹ, iyẹn ni gbogbo rẹ, ti o ba fẹ mọ awọn alaye naa,
orisun: www.habr.com