Ugrás a fő tartalomra

MongoDB alapok : alap utasítások

 MongoDB alapok : alap utasítások 



A MongoDB egy NoSQL adatbázis-kezelő rendszer, amely JSON-szerű dokumentumokat használ. Itt van egy részletes útmutató a legfontosabb CRUD (Create, Read, Update, Delete) és egyéb műveletekhez, beleértve a szűrést, rendezést és feltételeket.

Példákat python nyelvű mintákkal mutatom be.



1️⃣ Adatok Beszúrása (Insert)

A MongoDB insert_one() és insert_many() függvényei új dokumentumokat adnak az adatbázishoz.

🔹 Egy dokumentum beszúrása

--- python

uj_dokumentum = { "nev": "Kovács Béla", "eletkor": 30, "email": "bela.kovacs@example.com" } collection.insert_one(uj_dokumentum)

🔹 Több dokumentum beszúrása

--- python

tobb_dokumentum = [ {"nev": "Nagy Anna", "eletkor": 25, "email": "anna.nagy@example.com"}, {"nev": "Szabó Péter", "eletkor": 35, "email": "peter.szabo@example.com"} ] collection.insert_many(tobb_dokumentum)

2️⃣ Adatok Lekérdezése (Find)

A find() és find_one() függvényekkel kérdezhetünk le adatokat.

🔹 Minden dokumentum lekérdezése

---python

for doc in collection.find(): print(doc)

🔹 Egy adott dokumentum lekérdezése

---python

eredmeny = collection.find_one({"nev": "Kovács Béla"}) print(eredmeny)

3️⃣ Szűrés és Feltételek (Filter)

MongoDB támogatja az összehasonlító operátorokat:

  • $gt   (nagyobb, mint)
  • $lt   (kisebb, mint)
  • $gte (nagyobb vagy egyenlő)
  • $lte (kisebb vagy egyenlő)
  • $eq    (egyenlő)
  • $ne   (nem egyenlő)

🔹 Pl.: Mindenki, akinek az életkora nagyobb, mint 30

--- python

for doc in collection.find({"eletkor": {"$gt": 30}}): print(doc)

🔹 Pl.: Mindenki, aki 25 és 35 év közötti

--- python

for doc in collection.find({"eletkor": {"$gte": 25, "$lte": 35}}): print(doc)

4️⃣ Logikai Feltételek (AND, OR, NOT)

MongoDB támogatja a logikai operátorokat:

  • $and (ÉS)
  • $or (VAGY)
  • $not (NEM)

🔹 Pl.: 30 év feletti vagy Kovács Béla nevű személyek

--- python

for doc in collection.find({ "$or": [ {"eletkor": {"$gt": 30}}, {"nev": "Kovács Béla"} ] }): print(doc)

🔹 Pl.: 25 év felettiek, akik nem Kovács Béla

--- python

for doc in collection.find({ "$and": [ {"eletkor": {"$gt": 25}}, {"nev": {"$ne": "Kovács Béla"}} ] }): print(doc)

5️⃣ Adatok Rendezése (Sort)

A sort() függvénnyel növekvő (1) vagy csökkenő (-1) sorrendben rendezhetünk.

🔹 Pl.: Életkor szerint növekvő sorrendben

---python

for doc in collection.find().sort("eletkor", 1): print(doc)

🔹 Pl.: Életkor szerint csökkenő sorrendben

--- python

for doc in collection.find().sort("eletkor", -1): print(doc)

6️⃣ Adatok Módosítása (Update)

A update_one() és update_many() függvényekkel módosíthatunk adatokat.

🔹 Pl.: Kovács Béla életkorának módosítása 31-re

--- python

collection.update_one( {"nev": "Kovács Béla"}, {"$set": {"eletkor": 31}} )

🔹 Pl.: Minden 25 év alatti életkor növelése 1-gyel

--- python

collection.update_many( {"eletkor": {"$lt": 25}}, {"$inc": {"eletkor": 1}} )

7️⃣ Adatok Törlése (Delete)

A delete_one() és delete_many() függvények törlik az adatokat.

🔹 Pl.: Egy adott dokumentum törlése

--- python

collection.delete_one({"nev": "Kovács Béla"})

🔹 Pl.: Minden 40 év feletti törlése

--- python

collection.delete_many({"eletkor": {"$gt": 40}})

8️⃣ Limit és Skip (Lapozás)

A limit() és skip() függvényekkel lapozhatunk az adatok között.

🔹 Pl.: Csak az első 2 találat lekérdezése

---python

for doc in collection.find().limit(2): print(doc)

🔹 Pl.: Kihagyja az első 2 találatot, és a következő 2-t adja vissza

---python

for doc in collection.find().skip(2).limit(2): print(doc)


🔹 Összefoglaló Táblázat

MűveletUtasításPélda
Beszúrásinsert_one() / insert_many()collection.insert_one({"nev": "Anna"})
Lekérdezésfind() / find_one()collection.find_one({"nev": "Anna"})
Szűrés$gt, $lt, $eq, $ne{"eletkor": {"$gt": 30}}
Logikai feltételek$or, $and, $not{"$or": [{"nev": "Anna"}, {"eletkor": 25}]}
Rendezéssort()collection.find().sort("eletkor", -1)
Módosításupdate_one() / update_many()collection.update_one({"nev": "Anna"}, {"$set": {"eletkor": 26}})
Törlésdelete_one() / delete_many()collection.delete_one({"nev": "Anna"})
Limit és Lapozáslimit() / skip()collection.find().skip(2).limit(2)







Megjegyzések