|ru_RU

NoSQL andmebaas – MongoDB

Mis on MongoDB?

MongoDB on populaarne NoSQL andmebaas, mis kasutab dokumentidel põhinevat andmete salvestamist. Erinevalt traditsioonilistest relatsioonilistest andmebaasidest (nt MySQL, PostgreSQL), kus andmed on tabelites ridade ja veergudena, hoiab MongoDB andmeid dokumentidena — JSON-laadsetes BSON-formaadis objektides.

See võimaldab suuremat paindlikkust, skaleeritavust ja lihtsamat tööd poolstruktureeritud või muutuvate andmetega.

Peamised mõisted MongoDB-s

  • Andmebaas (Database) – kogumik kollektsioone.
  • Kollektsioon (Collection) – MongoDB-s on see tabelile sarnane üksus, mis sisaldab dokumente. Kollektsioonis pole fikseeritud skeemi, st dokumendid võivad erineda.
  • Dokument (Document) – põhiline andmeüksus, mis on BSON-formaadis (vähem-või rohkem JSONiga sarnane). Näide dokumentidest:

mongoDB Kasutamine

Tabeli loomine

Ülemises osas on näha mongosh konsooli, kus käsk show databases kuvab olemasolevad andmebaasid. Seejärel liigutakse andmebaasi mongo ning käivitatakse käsk db.createCollection("users"), mis annab vastuseks { ok: 1 }, mis kinnitab, et kollektsioon users loodi edukalt. Alumises osas on kujutatud graafiline kasutajaliides, kus kuvatakse just loodud users-kollektsiooni kokkuvõte.

Andmete lisamine

Pildil on kujutatud, kuidas MongoDB users kollektsiooni lisatakse uus dokument. Pärast seda kuvatakse see äsja lisatud dokument graafilises kasutajaliideses.

Palju andmete lisamine

Pildil on näha, kuidas MongoDB users kollektsiooni lisatakse korraga mitu uut dokumenti. Graafiline kasutajaliides kuvab nüüd lisaks eelmisel pildil olnud dokumendile ka need viis äsja lisatud dokumenti.

Andmete otsimine kriteeriumi järgi

Pildid illustreerivad, kuidas MongoDB users kollektsioonist otsitakse andmeid, kasutades käsku find(). Näidatakse, kuidas leida kasutajaid täpsete väärtuste põhjal. Samuti on toodud näide $or operaatori kasutamisest, millega saab leida dokumente, mis vastavad vähemalt ühele määratud tingimustest. Lisaks demonstreeritakse erinevate võrdlusoperaatorite kasutamist vanuse välja puhul: otsitakse kasutajaid, kes on nooremad kui teatud vanus ($lt), teatud vanuses või nooremad ($lte), vanemad kui teatud vanus ($gt), teatud vanuses või vanemad ($gte), ning neid, kelle vanus ei ole määratud konkreetne väärtus ($ne).

Sorteerimine

Pildil on kujutatud, kuidas MongoDB users kollektsiooni dokumente sorteeritakse. Vasakul poolel toimub sorteerimine vanuse järgi kasvavas järjekorras ({ age: 1 }), samal ajal kui paremal poolel toimub sorteerimine vanuse järgi kahanevas järjekorras ({ age: -1 }).

Kirjete arvu piiramine

Joonisel on näha, kuidas MongoDB-s piirata tagastatavate dokumentide hulka. Ülal kasutatakse db.users.find().limit(4), et saada maksimaalselt neli esimest kirjet. Allpool on näidatud db.users.findOne() kasutamine kahes variandis: ühe puhul otsitakse kindla _id alusel, teise puhul leitakse esimene dokument, mille vanus on 18.

Linkide tüübid

Mongo ühendamine node jsiga