Felhasználói eszközök

Eszközök a webhelyen


oktatas:adatbazis-kezeles:mongodb:mongodb_shell

< MongoDB

MongoDB - Shell

Kezdés

Feltelepül egy mongosh nevű kliens program. Indítsuk el:

mongosh

Megjelenik a következő várakozási jel:

>

Kilépés az exit utasítással lehetséges:

> exit

Kérdezzük le mi az aktuális adatbázis:

> db
test
>

Milyen adatbázisok vannak:

> show dbs
local   (empty)
>

Új adatbázist úgy tudsz létrehozni, hogy használatba veszed:

> use kekzrt
switched to db kekzrt

Az új adatbázis csak akkor marad meg, ha gyűjteményt teszünk bele.

Ellenőrizd az aktuális adatbázist:

> db
kekzrt

Segítség:

> help

Képernyőtörlés

cls

Azonosítás

Ha a MongoDB azonosítással érhető el:

mongosh -u root -p

A jelszót bekéri.

Kollekciók és dokumentumok

A MongoDB adatbázis-kezelőben adatbázisokat hozunk létre.

Az adatbázisokban gyűjteményekkel (collection) dolgozunk.

A gyűjteményekbe dokumentumokat szúrunk be.

Egy dokumentum:

{
  name: "Fehér Lajos",
  city: "Szeged",
  salary: 395
}

Egy gyűjtemény:

[
  {
    name: "Fehér Lajos",
    city: "Szeged",
    salary: 395
  },
  {
    name: "Kék Imre",
    city: "Szeged",
    salary: 394
  },
  {
    name: "Dór Gábor",
    city: "Pécs",
    salary: 393
  }  
]

Kollekciók

A kollekciókat létrehozhatjuk, vagy létrejönnek, automatikusan, amikor dokumentumot teszünk bele.

Csatlakozzunk a zoldzrt adatbázishoz:

use zoldzrt

Nézzük meg az adatbázist.

show dbs

Az adatbázis még nem jelenik meg.

Hozzuk létre az „employees” nevű gyűjteményt (kollekció):

db.createCollection("employees")

Nézzük meg újból az adatbázist:

show dbs

Dokumentumok

Hozzunk létre két dokumentumot a munkas adatbázisban:

use munkas
db.employees.insertOne({ name : "Hana Ferenc", city: "Pécs", salary: 394 })

Változóba is tehetünk egy dokumentumot:

a = { name : "Para Béla", city: "Miskolc", salary: 349 }
b = { name : "Tengő Ernő", city: "Szeged", salary: 358 }

Tegyük az employees gyűjteménybe:

db.employees.insertOne(a)
db.employees.insertOne(b)

A kollekció automatikusan létrejönnek.

Ellenőrizzük a gyűjteményeinket:

show collections
employees
system.indexes 

Nézzük meg az employees gyűjteményünket a find() függvénnyel:

db.employees.find()
[
  {
    _id: ObjectId("52619e731b723f1bb2cdbc8d"), 
    name: 'Para Béla',
    city: 'Miskolc',
    salary: 349
  },
  {
    _id: ObjectId("52619e921b723f1bb2cdbc8e"),
    name: 'Tengő Ernő',
    city: 'Szeged',
    salary: 358
  }
]

Adatbázis

Törlés:

test> use school
switched to db school
school> db.dropDatabase()
{ ok: 1, dropped: 'school' }

A root felhasználó

Azonosíthatjuk magunkat a MongoDB Shell-en belül, a root felhasználóval. Ehhez válasszuk ki a az admin adatbázist, majd db.auth():

use admin
db.auth("root", "titok")

A kimenet ehhez hasonló:

{ ok: 1 }

Több dokumentum beszúrása

db.employees.insertMany([
{name: "János", city: "Szeged", salary: 394}, 
{name: "János", city: "Szeged", salary: 393}, 
{name: "Béla", city: "Pécs", salary: 393}
]);

Típusok

  • szöveg
  • egész
  • valós
  • logikai
  • dátum
db.employees.insertOne({
    name: "Béla",
    group: 2,
    salary: 385.2,
    vehicle: true
});
db.employees.insertOne({
    name: "Béla",
    group: 2,
    salary: 385.2,
    vehicle: true,
    birth: new Date("1999-05-16")
});
db.students.insertOne({
    age: 28,
    gpa: 3.2,
    fullTime: false,
    registerDate: new Date(),
    gradutionDate: null,
    courses: ["CSharp", "Python", "Java"],
    address: { street: "Tavasz u. 23",
               city: "Szeged",
               zip: 3922}})

A következő adatok jelennek meg:

[
  {
    _id: ObjectId('65d0a462adb37355583dacd2'),
    age: 28,
    gpa: 3.2,
    fullTime: false,
    registerDate: ISODate('2024-02-17T12:19:46.547Z'),
    gradutionDate: null,
    courses: [ 'CSharp', 'Python', 'Java' ],
    address: { street: 'Tavasz u. 23', city: 'Szeged', zip: 3922 }
  }
]

Rendezés

Készítsünk egy adatbázist:

use barbt
db.employees.insertMany([
    {name: "Vidám Irén", city: "Szeged", salary: 394}, 
    {name: "Erős István", city: "Szeged", salary: 393}, 
    {name: "Csengő Mária", city: "Pécs", salary: 393},
    {name: "Lépes Lajos", city: "Pécs", salary: 393},
    {name: "Dór Ilona", city: "Szolnok", salary: 397},
    {name: "Fehér Károly", city: "Pécs", salary: 396},
    {name: "Csont Elvira", city: "Pécs", salary: 393},
])
db.employees.find().sort({name: 1})

Fordítva:

db.employees.find().sort({name: -1})

Fizetés szerint:

db.employees.find().sort({salary: 1})

Keresés

db.employees.find({name: "Fehér Károly"})
db.employees.find({city: "Pécs", salary: 393})

Milyen mezők jelenjenek meg:

barbt> db.employees.find({}, {_id: false, name: true, city: true})
[
  { name: 'Vidám Irén', city: 'Szeged' },
  { name: 'Erős István', city: 'Szeged' },
  { name: 'Csengő Mária', city: 'Pécs' },
  { name: 'Lépes Lajos', city: 'Pécs' },
  { name: 'Dór Ilona', city: 'Szolnok' },
  { name: 'Fehér Károly', city: 'Pécs' },
  { name: 'Csont Elvira', city: 'Pécs' }
]

update

db.employees.updateOne({name: "Fehér Károly"}, {$set:{salary: 399}})
db.employees.updateOne({_id: ObjectId("65d0a331adb37355583daccd")}, {$set:{salary: 399}})

Törlés:

db.employees.updateOne({name: "Fehér Károly"}, {$unset:{salary: ""}})

Mindenki fizetése:

db.employees.updateMany({}, {$set:{salary: 395}})

Törlés

db.employees.deleteOne({name: "Nagy Ernő"})
db.employees.deleteMany({city: "Szeged"})
db.employees.deleteMany({birth: {$exists:false}})

Operátorok

db.employees.find({city: {$ne:"Szeged"}})
db.employees.find({salary: {$lt:396}})
db.employees.find({salary: {$lte:396}})
db.employees.find({salary: {$gt:396}})
db.employees.find({salary: {$gte:396}})
db.employees.find({salary: {$gt:394, $lte:396}})

Benne van?

db.employees.find({name: {$in:["Bar Ferenc", "Lór Árpád", "Csoda Ernő"]}})

Logikai operátorok

db.employees.find($and: [{city:"Szeged", salary:{$lte:395}])
db.employees.find($or: [{city:"Szeged", salary:{$lte:395}])
db.employees.find($nor: [{city:"Szeged", salary:{$lte:395}])
db.employees.find({salary:{$not:{$gte:395}}})

Indexek

db.employees.find({name:"Erős István"}).explain("executionStats")
db.employees.createIndex({name: 1})
db.employees.find({name:"Erős István"}).explain("executionStats")
db.employees.getIndexes()
db.employees.dropIndex("name_1")

Kollekciók

show collections db.createCollection(„teachers”)

Mező Típus Leírás
capped boolean Opcionális. Fix méreteű
Ha beállítjuk, meg kell adni a maximum size mezőt is.
size number Opcionális. Kollekció maximális mérete bájtban.
Ha a gyűjtemény eléri a maximális méretet,
a MongoDB eltávolítja a régebbi dokumentumokat
Ha be van állítva méret korlát, akkor ezt
a mezőt is meg kell adni. Más gyűjteményeknél figyelmen
kívül lesz hagyva.
max number Dokumentumok maximális száma.
db.createCollection("teachers", {
    capped:true,       // Fix méretű gyűjtemény
    size:1024000,      // Gyűjtemény maximális mérete
    max:100            // Dokumentumok maximális száma
    },{
    autoIndexId:false   //automatikus index azonosító
    }
})

Több információ:

Törlés

db.crateCollection("valamik")
db.valamik.drop()
oktatas/adatbazis-kezeles/mongodb/mongodb_shell.txt · Utolsó módosítás: 2024/02/17 20:14 szerkesztette: admin