Shamwari, imwe kosi kutanga
Webinar yakaitwa
MongoDB Features
MongoDB ndeye yakavhurika sosi gwaro-yakatarisana DBMS iyo isingade tsananguro yetafura schema. Inotsanangurwa seNoSQL uye inoshandisa BSON (binary JSON). Scalable kunze kwebhokisi, yakanyorwa muC ++ uye inotsigira JavaScript syntax. Iko hakuna SQL rutsigiro.
MongoDB ine vatyairi vemitauro yakawanda yakakurumbira yekuronga (C, C++, C#, Go, Java, JavaScript, Perl, PHP, Python, Ruby, nezvimwewo). Kune zvakare vatyairi vasina pamutemo uye vanotsigirwa nenharaunda kune mimwe mitauro yekuronga.
Zvakanaka, ngatitarisei mirairo yekutanga inogona kubatsira.
Saka, kuendesa MongoDB muDocker, tinonyora:
docker run -it --rm -p 127.0.0.1:27017:27017
--name mongo-exp-project mongo
docker exec -it mongo-exp-project mongo
Ndizvo zvinoitika kutanga kwevatengi MongoDB:
Zvino ngatinyore yechinyakare Mhoro Nyika:
print (βHello world!β)
Mushure maizvozvo - ngatitange kutenderera:
Sezvamaona, pamberi pedu nguva dzose JS, uye MongoDB muturikiri weJavaScript akazara.
Nguva yekushandisa MongoDB?
Pane nyaya yekuti avhareji yekutanga muSilicon Valley ndiye munhu akavhura bhuku "HTML yeDummies" svondo rapfuura. Achasarudza murwi upi? Bvumirana kuti zviri nyore kwaari kana, nekuda kwezvikonzero zviri pachena, ane JavaScript mubrowser yake, Node.js iri kushanda pane sevha, uye JavaScript iri kushandawo mudhatabhesi. Iyi ipfungwa nhamba 1.
Chechipiri, pane
Chechitatu, ndinoda kusimbisa kuti MongoDB inoratidzwa nezvakanaka scalability - uye ichi ndicho chimwe chezvinhu zvakakosha zve database. Kana iwe usingazive pachine nguva kuti mutoro uchavei, MongoDB yakakwana. Mukuwedzera, inotsigira kunze-kwe-bhokisi maitiro akadai se sharding ΠΈ replication, uye izvi zvose zvinoitwa zvakajeka, kureva kuti, zviri nyore chaizvo kushanda.
Nezvekutaura terminology muMongoDB ipapo:
- dhatabhesi idhatabhesi (zvirongwa, muunganidzwa wematafura);
- muMongoDB pane chinhu chakadai kuunganidza - iyi ndiyo analogue yetafura uye seti yezvinyorwa izvo, zvine musoro, zvinofanirwa kubatanidzwa;
- magwaro akafanana netambo.
Kugadzira dhatabhesi uye mibvunzo iri nyore
Kuti ugadzire dhatabhesi, unongoda kutanga kuishandisa:
use learn
Zvino ngatiite chidimbu chidiki chegwaro. Ngazvive, semuenzaniso, unicorn inonzi Aurora:
db.unicorns.insert({name: 'Aurora', gender: 'f', weight: 450})
db - chinhu chepasi rose chekuwana dhatabhesi, kureva kuti, iyo "monga" pachayo. Inoshandiswa kupatsanura sh, kudzokorora - rs.
Chinhu chine mirairo ipi? db:
Saka, ngatidzokere kukuraira kwedu, semhedzisiro iyo iyo koni ichataura kuti mutsara mumwe wakaiswa:
Izwi unicorns
muchikwata db.unicorns.insert({name: 'Aurora', gender: 'f', weight: 450})
zvinoreva muunganidzwa. Ndokumbira utarise pano kuti isu hatina kutsanangura kana kugadzira muunganidzwa, asi takangonyora 'unicorns', takaisa, uye isu tine muunganidzwa.
Uye izvi ndizvo zvatinokwanisa tora zvese zvatinounganidza:
db.getCollectionNames()
Zvichingoenda zvakadaro. Inogona isa imwe muunganidzwa:
Zvino ngatibvunzei muunganidzwa wakakwana (tinokuyeuchidza kuti mune yedu dhatabhesi yatove neruzivo nezve maunicorns maviri ane zita rimwe chete):
db.unicorns.find()
Ndokumbira utarise, heino JSON yedu (pane zita, murume kana mukadzi, uremu, chimwe chinhu chakasiyana chinozivisa):
Zvino ngatiisei mamwe maunicorn akati wandei ane mazita akafanana:
db.unicorns.insert({name: 'Leto', gender: 'm',
home: 'Arrakeen', worm: false})
db.unicorns.insert({name: 'Leto', gender: 'm',
home: 'Arrakeen', worm: false})
Uye ngatione zvakaitika:
Sezvauri kuona, isu tine mamwe minda: musha ΠΈ worm, iyo Aurora isina.
Ngatiwedzere mamwe mashoma 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}])
Saka, takaisa zvimwe zvinhu zvina tichishandisa JavaScript:
Mune maonero ako, ndeapi dhatabhesi ari nyore kuchengetedza data repasipoti: dhatabhesi rehukama kana Mongo?
Mhinduro iri pachena - mu Monga, uye muenzaniso uri pamusoro unoratidza izvi zvakanaka. Haisi chakavanzika kuti KLADR inorwadza muRussian Federation. Uye Monga inokodzera chaizvo nemakero, nekuti iwe unogona kuseta zvese senge, uye hupenyu huchava nyore. Uye yakanaka Mushandisi Nyaya yeMongoDB.
Ngatiwedzere mamwe ma 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});
Iye zvino teerera kune zvinyorwa. As ngoma Tinochengeta zvinhu zvose. Panewo ruzivo rwezvinoda unicorn, uye havasi vose vane ruzivo urwu. Saka mukati mune nhema full array.
Nenzira, kuratidza mhedzisiro zvakanyanya kunaka, unogona kufonera iyo nzira pakupera kweiyo yekutsvaga kuraira .pretty()
:
Kana uchida kuwana ruzivo nezve kukanganisa kwazvino, shandisa murairo unotevera:
db.getLastError()
Izvi zvinogona kuitwa mushure mekuiswa kwega kwega, kana iwe unogona kugadzirisa Nyora Kunetseka. Zviri nani kuverenga nezvazvo mukati
Ngatienderei kune mimwe mibvunzo yakaoma
Kutsvaga kukosha kwemunda chaiko:
db.unicorns.find({gender: 'm'})
Nekunyora chikumbiro chakadaro, isu tinogashira runyoro rweese echirume unicorns mune inoburitsa console.
Unogonawo kuita bvunza pane akati wandei panguva imwe chete: nevarume uye nehuremu:
Pamusoro, teerera kune yakakosha $gt selector, iyo inokutendera iwe kubereka ese echirume unicorns anorema kupfuura mazana manomwe.
Unogona kutarisa munda uripo here?:
db.unicorns.find({vampires: {$exists: false}})
Kana zvakadaro:
db.unicorns.find({'parents.father': {$exists: true}})
Chikwata chinotevera chichaburitsa unicorns, vane mazita anotanga nemavara A kana a:
db.unicorns.find({name: {$regex: "^[Aa]"}})
Zvino ngatifungei array search. Mubvunzo #1: Chii chichabuda murairo uyu:
db.unicorns.find({loves:'apple'})
Ndizvozvo: munhu wose anoda maapuro.
Iwo unotevera murairo unozodzosera chete iwo unicorn data ine maapuro nemanwiwa chete.
db.unicorns.find({loves:[ "apple", "watermelon" ]})
Uye mumwezve murairo:
db.unicorns.find({loves:[ "watermelon", "apple" ]})
Kwatiri, hazvidzose chero chinhu, sezvo kana isu tapfuura array, yekutanga element inofananidzwa neyekutanga, yechipiri neyechipiri, zvichingodaro. nechinzvimbo tsika idzi.
Uye izvi ndizvo zvinoita kutsvaga kuburikidza nehurongwa uchishandisa "OR" mushandisi:
Muenzaniso unotevera uchatiratidza tsvaga uchishandisa $all opareta. Uye pano kutevedzana hakuna kukosha:
Isu tinogonawo tsvaga maererano nekukura:
Asi ko kana isu tichida kuwana rondedzero ine saizi yakakura kupfuura imwe? Pane mushandisi weizvi $kupi, iyo iwe yaunogona kunyora zvakanyanya kuoma zvinhu:
db.unicorns.find({$where: function() { return this.loves && (this.loves.length > 1) } })
Nenzira, kana iwe uchida kudzidzira,
Cursor Features
Ngatitenderei zvishoma uye titaure mazwi mashoma nezve maficha eMonga:
- find() uye mamwe mashandiro haadzose data - anodzosera inonzi "cursor";
- chokwadi chekuti tinoona data richidhindwa ibasa remuturikiri.
Typing db.unicorns.find pasina maparentheses, tinowana kukurumidza:
Tinoramba tichizadzisa zvikumbiro
Kune zvakare iyo $in opareta:
db.unicorns.find({weight: {$in: [650, 704]}})
Zvino ngatitaure nezve update. Semuenzaniso, ngatichinje huremu hweiyo Rooooodles unicorn:
db.unicorns.update({name: "Roooooodles"}, {weight: 2222})
Somugumisiro wezviito zvedu, gwaro ichagadziridzwa zvizere, uye munda mumwe chete wakatsanangurwa uchasara mairi:
Ndokunge, chinhu chega chinosara chechinhu chedu uremu 2222 uye, hongu, id.
Unogona kugadzirisa mamiriro acho uchishandisa $ set:
db.unicorns.update({_id: ObjectId("5da6ea4d9703b8be0089e6db")}, {$set: { "name" : "Roooooodles", "dob" : ISODate("1979-08-18T18:44:00Z"), "loves" : [ "apple" ], "gender" : "m", "vampires" : 99}})
Zvinogonekawo kuwedzera kukosha:
Uye pane zvakare upsert - kusanganiswa kwekuvandudza uye kuisa:
Heino maitiro azvinoitwa kusarudzwa kwemunda:
Inoramba ichiwedzera mazwi mashomanana pamusoro tanhuka ΠΈ muganhu:
Shamwari, ndizvo chete, kana iwe uchida kuziva ruzivo,
Source: www.habr.com