NoSQL

  1. Mis on MongoDB?
    1. Kollektsioon (kogu)
    2. Dokument
    3. MongoDB Compass
  2. Näited käskude kasutamisest MongoDB Shellis
  3. Ühendamine Node.js abil
  4. Ühendamine Python abil

Mis on MongoDB?

MongoDB on NoSQL (relatsioonitu) andmebaas, mis salvestab andmeid dokumentidena JSON/BSON-vormingus.
Erinevalt relatsioonilistest andmebaasidest (nt MySQL), ei kasuta MongoDB tabeleid ja ridu, vaid kogusid (collections) ja dokumente (documents).

MongoDB sobib hästi:

  • suurte ja muutuvate andmete jaoks
  • projektidele, kus skeem ei ole kindel
  • kiireks prototüüpimiseks

Kollektsioon (kogu)

Kollektsioon on nagu andmebaasi tabel. See on koht, kuhu salvestatakse palju dokumente. Näiteks kollektsioon nimega „õpilased“ sisaldab kõiki õpilaste dokumente.

Dokument

Dokument on üks andmekirje MongoDB-s. See näeb välja nagu väike tekst, mis ütleb, milline on mingi asi. Näiteks:

{
  "nimi": "Nikita",
  "vanus": 16,
  "grupp": "TARpv24"
}

Iga dokument võib olla natuke erinev, seal ei pea olema kõigil samad väljad.

MongoDB Compass

MongoDB Compass on lihtne programm, millega saab MongoDB-d graafiliselt kasutada — ilma keeruliste käskudeta.

  • Saab luua andmebaase ja kollektsioone.
  • Saab lisada, muuta, otsida ja kustutada dokumente.

Programmi üldine ülevaade

AB loomine

Kogu lisamine

Dokumentide kustutamine

Dokumentide lisamine

Dokumentide uuendamine

Võite kasutada ka otsingut (Näiteks otsi kirjet vanuse järgi)

Samuti saate MongoDB-d otse hallata Shelli kaudu

Näited käskude kasutamisest MongoDB Shellis

Video: https://www.youtube.com/watch?v=LNvmI8a9jwY


Näita andmebaased
Lühendatud versioon

Kasuta mongot, loo kogu “users” ja kuva kõik kogusid.
Kustuta andmebaas

Sisesta üks väärtus väljale “users”
Leia kõik väärtused “users” hulgast

Sisesta mitu väärtust ühte käsku


Otsimine vanuse järgi
Otsimine vanuse ja nime järgi
Otsimine tingimusega “$pr”

$it – vähem
$gt – suurem
$lte – vähem või võrdne
$gte – suurem või võrdne
$ne – mitte


Funktsioon “sort”
“1” – väikesest suureni, “-1” – suurest väikeseni

Saate sissekannete arvule piirangu määrata
Otsimine unikaalse ID järgi
Leiab ühe kirje

Kirje andmete uuendamine

Kirjete väljade nimede muutmine


34-aastase kasutaja kustutamine
Lisamine ja eemaldamine ühe käsuga

“posts” lisamine

Kasutajalt “posts” saamine

Otsimine kasutajat, kelle puhul kasutatakse otsinguterminit “posts”, kus “title” võrdub “javascript”-iga
Otsimine kasutajaid, kellel on “posts”

Ühendamine Node.js abil

Paigalda MongoDB moodul:

npm install mongoose

Näide koodist (Node.js):

const mongoose = require("mongoose");

mongoose.connect("mongodb://localhost:27017/MongoDD",{
    useNewUrlParser: true,
    useUnifiedTopology: true,
})
.then(() => console.log("MongoDB connected!"))
.catch(err => console.error("Connection ERROR:", err));

const userSchema = new mongoose.Schema({
    name: String,
    age: Number,
});

const User = mongoose.model("User", userSchema);

async function createUser() 
{
    const user = new User({ name: "Shrek", age: 30 });
    await user.save();
    console.log("User saved: ", user);
}

createUser().then(() => {
    mongoose.disconnect();
});

Lisatud uus kirje Node.js skripti kaudu

Ühendamine Python abil

Paigalda moodul:

pip install pymongo

Pythoniga ühendamine:

from pymongo import MongoClient

client = MongoClient("mongodb://localhost:27017/")
db = client["TestDB"]
collection = db["users"]

new_user = {"nimi": "Genrih", "vanus": 17}
collection.insert_one(new_user)