Caraidean, cur air bhog cùrsa eile
Chaidh an webinar a chumail
Feartan MongoDB
MongoDB na DBMS stòr fosgailte a tha stèidhichte air sgrìobhainn nach eil feumach air tuairisgeul air sgeama a’ bhùird. Tha e air a sheòrsachadh mar NoSQL agus a’ cleachdadh BSON (JSON binary). Scalable a-mach às a’ bhogsa, sgrìobhte ann an C ++ agus a’ toirt taic do cho-chòrdadh JavaScript. Chan eil taic SQL ann.
Tha draibhearan aig MongoDB airson mòran chànanan prògramaidh mòr-chòrdte (C, C ++, C #, Go, Java, JavaScript, Perl, PHP, Python, Ruby, msaa). Tha draibhearan neo-oifigeil ann cuideachd le taic coimhearsnachd airson cànanan prògramaidh eile.
Uill, leig dhuinn sùil a thoirt air na h-òrdughan bunaiteach a dh'fhaodas a bhith feumail.
Mar sin, gus MongoDB a chuir an sàs ann an Docker, tha sinn a 'sgrìobhadh:
docker run -it --rm -p 127.0.0.1:27017:27017
--name mongo-exp-project mongo
docker exec -it mongo-exp-project mongo
Mar sin tha e a’ tachairt cur air bhog neach-dèiligidh MongoDB:
A-nis leig dhuinn am fear traidiseanta a sgrìobhadh Hàlo a Shaoghail:
print (“Hello world!”)
Às deidh sin - tòisichidh sinn air a’ chearcall:
Mar a mhothaich thu, romhainn JS cunbhalach, agus tha MongoDB na eadar-theangair JavaScript làn-chuimseach.
Cuin a chleachdas tu MongoDB?
Tha sgeulachd ann gur e an ìre tòiseachaidh cuibheasach ann an Silicon Valley an neach a dh’ fhosgail an leabhar “HTML for Dummies” o chionn seachdain. Dè an stac a thaghas e? Aontaich gu bheil e gu math goireasach dha nuair, airson adhbharan follaiseach, tha JavaScript aige sa bhrobhsair aige, tha Node.js a’ ruith air an fhrithealaiche, agus tha JavaScript cuideachd a’ ruith san stòr-dàta. Is e seo puing àireamh 1.
San dàrna h-àite, tha
San treas àite, bu mhath leam cuideam a chuir air gu bheil MongoDB air a chomharrachadh le math scalability - agus is e seo aon de phrìomh fheartan an stòr-dàta. Mura h-eil fios agad ro-làimh dè an luchd a bhios ann, tha MongoDB foirfe. A bharrachd air an sin, tha e a’ toirt taic do phàtranan taobh a-muigh a’ bhogsa leithid rùsgadh и mac-samhail, agus tha seo uile air a dhèanamh gu math follaiseach, is e sin, tha e gu math goireasach a bhith ag obair.
A thaobh briathrachas ann am MongoDB an uairsin:
- tha stòran-dàta nan stòran-dàta (sgeama, cruinneachaidhean chlàran);
- ann am MongoDB tha leithid de rud ann an cruinneachadh - is e seo analogue de bhòrd agus seata de sgrìobhainnean a bu chòir, gu loidsigeach, a bhith ceangailte;
- tha sgrìobhainnean co-chosmhail ri sreang.
Cruthachadh stòr-dàta agus ceistean sìmplidh
Gus stòr-dàta a chruthachadh, cha leig thu leas ach tòiseachadh air a chleachdadh:
use learn
A-nis leig dhuinn cuir a-steach beag den sgrìobhainn. Biodh e, mar eisimpleir, aon-adharcach leis an t-ainm Aurora:
db.unicorns.insert({name: 'Aurora', gender: 'f', weight: 450})
db - rud cruinneil airson faighinn chun stòr-dàta, is e sin, gu dearbh, am “monga” fhèin. Air a chleachdadh airson sgoltadh sh, airson ath-riochdachadh - rs.
Dè na h-òrdughan a tha aig an nì? db:
Mar sin, tillidh sinn chun àithne againn, agus mar thoradh air an sin bidh an consol ag aithris gu bheil aon loidhne air a chuir a-steach:
Am facal unicorns
ann an sgioba db.unicorns.insert({name: 'Aurora', gender: 'f', weight: 450})
a’ comharrachadh cruinneachadh. Thoir an aire an seo nach do rinn sinn cunntas no cruthachadh air a’ chruinneachadh, ach dìreach sgrìobh sinn ‘unicorns’, rinn sinn cuir a-steach, agus bha cruinneachadh againn.
Agus seo mar as urrainn dhuinn faigh na cruinneachaidhean againn uile:
db.getCollectionNames()
Agus mar sin air adhart. Faodaidh cuir a-steach fear eile cruinneachadh:
A-nis leig dhuinn faighneachd cruinneachadh iomlan (tha sinn gad chuimhneachadh gu bheil fiosrachadh anns an stòr-dàta againn mu dhà aon-adharcach leis an aon ainm):
db.unicorns.find()
Thoir an aire, seo an JSON againn (tha ainm, gnè, cuideam, aithnichear nì sònraichte):
A-nis leig dhuinn a-steach càraid a bharrachd aon-adharcach leis na h-aon ainmean:
db.unicorns.insert({name: 'Leto', gender: 'm',
home: 'Arrakeen', worm: false})
db.unicorns.insert({name: 'Leto', gender: 'm',
home: 'Arrakeen', worm: false})
Agus chì sinn dè thachair:
Mar a chì thu, tha raointean a bharrachd againn: dachaigh и worm, rud nach eil aig Aurora.
Nach cuir sinn beagan a bharrachd unicorns ris:
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}])
Mar sin, chuir sinn a-steach ceithir nithean eile a’ cleachdadh JavaScript:
Nad bheachd-sa, anns na stòran-dàta a tha e nas freagarraiche dàta cead-siubhail a stòradh: stòran-dàta dàimheach no Mongo?
Tha am freagairt follaiseach - ann am Monga, agus tha an eisimpleir gu h-àrd a 'sealltainn seo gu math. Chan eil e na dhìomhaireachd gu bheil KLADR na phian ann an Caidreachas na Ruis. Agus tha Monga a 'freagairt gu math ri seòlaidhean, oir faodaidh tu a h-uile càil a shuidheachadh mar raon, agus bidh beatha mòran nas fhasa. Agus 's e fear math a th' ann Cùis cleachdaiche airson MongoDB.
Nach cuir sinn barrachd unicorns ris:
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});
A-nis thoir aire do na sgrìobhainnean. As druma Bidh sinn a 'stòradh stuthan slàn. Tha fiosrachadh ann cuideachd mu na tha gaol aig aon-adharcach, agus chan eil am fiosrachadh seo aig a h-uile duine. Mar sin breugan a-staigh sreath iomlan.
Co-dhiù, gus na toraidhean a thaisbeanadh nas bòidhche, faodaidh tu am modh a ghairm aig deireadh an àithne sgrùdaidh .pretty()
:
Ma dh'fheumas tu faighinn fiosrachadh mun mhearachd as ùire, cleachd an òrdugh a leanas:
db.getLastError()
Faodar seo a dhèanamh às deidh gach cuir a-steach, no faodaidh tu Write Concern a rèiteachadh. Tha e nas fheàrr leughadh mu dheidhinn ann an
Gluaisidh sinn air adhart gu ceistean nas iom-fhillte
Ceist airson dearbh luach an raoin:
db.unicorns.find({gender: 'm'})
Le bhith a’ sgrìobhadh iarrtas mar seo, gheibh sinn liosta de na h-aon-adharcaich fhireann uile ann an toradh a’ chonsail.
Faodaidh tu cuideachd a dhèanamh ceist air grunn raointean aig an aon àm: a rèir gnè agus cuideam:
Gu h-àrd, thoir aire don rud sònraichte $gt roghnaichear, a leigeas leat briodadh aon-adharcach fireann le cuideam nas motha na 700.
Faodaidh tu sgrùdadh a dhèanamh a bheil an raon ann idir?:
db.unicorns.find({vampires: {$exists: false}})
No mar sin:
db.unicorns.find({'parents.father': {$exists: true}})
Bheir an ath sgioba a-mach na h-aon-adharcaich, aig a bheil ainmean a’ tòiseachadh leis na litrichean A neo a:
db.unicorns.find({name: {$regex: "^[Aa]"}})
A-nis leig dhuinn beachdachadh lorg array. Ceist #1: Dè a bheir an àithne seo a-mach:
db.unicorns.find({loves:'apple'})
Tha sin ceart: a h-uile duine a tha dèidheil air ùbhlan.
Cha till an àithne a leanas ach an dàta aon-adharcach sin anns a bheil a-mhàin ùbhlan agus watermelons:
db.unicorns.find({loves:[ "apple", "watermelon" ]})
Agus aon òrdugh eile:
db.unicorns.find({loves:[ "watermelon", "apple" ]})
Anns a 'chùis againn, cha toir e rud sam bith air ais, oir nuair a thèid sinn seachad air sreath, tha a' chiad eileamaid air a choimeas ris a 'chiad fhear, an dàrna fear leis an dàrna fear, msaa. 'S e sin, feumaidh an t-sreath a bhith co-ionnan. a rèir suidheachadh na luachan seo.
Agus seo mar a tha e coltach a’ rannsachadh tro raon a’ cleachdadh a’ ghnìomhaiche “OR”.:
Nochdaidh an eisimpleir a leanas dhuinn rannsaich a’ cleachdadh gnìomhaiche $all. Agus an seo tha an sreath neo-chudromach:
Faodaidh sinn cuideachd lorg a rèir meud eagrachaidh:
Ach dè ma tha sinn airson raon a lorg aig a bheil meud nas motha na aon? Tha gnìomhaiche ann airson seo $ càite, leis an urrainn dhut rudan nas iom-fhillte a sgrìobhadh:
db.unicorns.find({$where: function() { return this.loves && (this.loves.length > 1) } })
Air an t-slighe, ma tha thu airson eacarsaich,
Feartan cùrsair
Leigamaid beagan air falbh agus abair beagan fhaclan mu fheartan Monga:
- lorg () agus cha bhith gnìomhachdan eile a’ tilleadh dàta - bidh iad a’ tilleadh “cursair” ris an canar;
- is e obair an eadar-theangair a chì sinn an dàta ga chlò-bhualadh.
A’ sgrìobhadh db.unicorns.lorg às aonais bracaidean, gheibh sinn am brosnachadh:
Tha sinn a’ leantainn oirnn a’ coileanadh iarrtasan
Tha an gnìomhaiche $in ann cuideachd:
db.unicorns.find({weight: {$in: [650, 704]}})
A-nis bruidhnidh sinn mu ùrachadh. Mar eisimpleir, atharraichidh sinn cuideam an aon-adharcach Rooooodles:
db.unicorns.update({name: "Roooooodles"}, {weight: 2222})
Mar thoradh air na gnìomhan againn, tha an sgrìobhainn thèid ùrachadh gu tur, agus cha bhi ach aon raon ainmichte air fhàgail ann:
Is e sin, is e an aon rud a dh'fhuiricheas airson ar nì an cuideam 2222 agus, gu dearbh, id.
Faodaidh tu an suidheachadh a cheartachadh le bhith a’ cleachdadh $ seata:
db.unicorns.update({_id: ObjectId("5da6ea4d9703b8be0089e6db")}, {$set: { "name" : "Roooooodles", "dob" : ISODate("1979-08-18T18:44:00Z"), "loves" : [ "apple" ], "gender" : "m", "vampires" : 99}})
Tha e comasach cuideachd luachan àrdachadh:
Agus tha cuideachd reasgach - measgachadh de ùrachadh agus cuir a-steach:
Seo mar a tha e air a dhèanamh taghadh raoin:
Tha e fhathast ri beagan fhaclan a chur ris mu dheidhinn skip и cuingealachadh:
A cho-obraichean, tha sin uile, ma tha thu airson faighinn a-mach mun fhiosrachadh,
Source: www.habr.com