Tartalomjegyzék
MongoDB - Shell
- Szerző: Sallai András
- Copyright © 2013, Sallai András
- Szerkesztve: 2013-2024
- Licenc: CC BY-SA 4.0
- Web: https://szit.hu
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()