Ismerje meg a MongoDB lekérdezéseket és műveleteket ennek a praktikus útmutatónak a segítségével.
A MongoDB az egyik legkeresettebb és legcsodáltabb NoSQL-adatbázis a szakmai fejlődéshez. Rugalmassága, méretezhetősége és nagy mennyiségű adat kezelésére való képessége a modern alkalmazások legjobb választásává teszik. Ha el akarja sajátítani a MongoDB szokásos lekérdezéseit és műveleteit, akkor jó helyen jár.
Mindegy, hogy hatékonyan kéri le és kezeli az adatokat, robusztus adatmodelleket szeretne megvalósítani, vagy reszponzív alkalmazásokhoz, a gyakori MongoDB lekérdezések és műveletek mély megértése kétségtelenül javítja készségek.
1. Adatbázisok létrehozása vagy váltása
Az adatbázis helyi létrehozása a MongoDB Shell segítségével egyszerű, különösen, ha távoli fürtöt állított be. A MongoDB-ben új adatbázist hozhat létre a használat parancs:
use db_name
Míg a fenti parancs új adatbázist hoz létre, akkor átválthat egy meglévő adatbázisra anélkül, hogy a semmiből újat hozna létre.
2. Drop Database
Először váltson át az eldobni kívánt adatbázisra a segítségével használat parancsot, mint korábban. Ezután dobja le az adatbázist a dropDatabase() parancs:
use db_name
db.dropDatabase()
3. Gyűjtemény létrehozása
Gyűjtemény létrehozásához váltson a céladatbázisra. Használja a CreateCollection() kulcsszó egy új MongoDB gyűjtemény létrehozásához:
db.createCollection("collection_name")
Cserélje ki gyűjtemény_neve a választott gyűjteménynévvel.
4. Dokumentum beszúrása gyűjteménybe
Amikor adatokat küld egy gyűjteménybe, beszúrhat egyetlen dokumentumot vagy dokumentumok tömbjét.
Egyetlen dokumentum beszúrása:
db.collection_name.insertOne({"Name":"Idowu", "Likes":"Chess"})
A fenti módszerrel egy azonosítóval rendelkező dokumentumtömböt is beszúrhat:
db.collection_name.insertOne([{"Name":"Idowu", "Likes":"Chess"}, {"Language": "Mongo", "is_admin": true}])
Ha egyszerre több dokumentumot szeretne beszúrni, mindegyiknek külön azonosítója van, használja a insertMany kulcsszó:
db.collection_name.insertMany([{"Name":"Idowu", "Likes":"Chess"}, {"Name": "Paul", "Likes": "Wordle"}])
5. Szerezze be az összes dokumentumot egy gyűjteményből
Egy gyűjtemény összes dokumentumát lekérdezheti a segítségével megtalálja() kulcsszó:
db.collection_name.find()
A fenti a megadott gyűjteményben lévő összes dokumentumot visszaadja:
A visszaadott adatokat egy adott számra is korlátozhatja. Például a következő paranccsal csak az első két dokumentumot kaphatja meg:
db.collection_name.find().limit(2)
6. Dokumentumok szűrése egy gyűjteményben
Számos módja van a dokumentumok szűrésének a MongoDB-ben. Vegye figyelembe például a következő adatokat:
Ha egy dokumentumban csak egy adott mezőt kérdez le, használja a megtalálja módszer:
db.collection_name.find({"Likes":"Wordle"}, {"_id":0, "Name":1})
A fenti visszaadja az összes olyan dokumentumot, ahol az értéke Tetszik van Wordle. Csak a neveket adja ki, és figyelmen kívül hagyja a dokumentumazonosítót.
A gyűjteményt számszerű tényezők alapján is szűrheti. Tegyük fel, hogy minden 21 évnél idősebb felhasználó nevét szeretné megkapni, használja a $gt operátor:
db.collection_name.find({"Likes":"Chess", "Age":{"$gt":21}}, {"_id":0, "Name":1})
A kimenet így néz ki:
Próbáld meg cserélni megtalálja val vel találj egyet hogy mi történik. Azonban számos más szűrési kulcsszó is létezik:
- $lt: Minden érték kisebb, mint a megadott.
- $gte: A megadott értékkel egyenlő vagy nagyobb értékek.
- $lte: A meghatározott értéknél kisebb vagy azzal egyenlő értékek.
- $eq: Minden értéket megkap a megadott értékkel.
- $ne: Az összes érték nem egyenlő a megadott értékkel.
- $in: Használja ezt, ha tömb alapján kérdez le. Minden értéket megkap, amely megfelel a tömb bármely elemének. A $nin kulcsszó az ellenkezőjét teszi.
7. Lekérdezések rendezése
A rendezés segít a lekérdezés meghatározott sorrendben rendezésében. Csökkenő vagy növekvő sorrendben rendezheti. Ne feledje, hogy a rendezéshez numerikus hivatkozás szükséges.
Például a növekvő sorrendbe rendezéshez:
db.collection_name.find({"Likes":"Chess"}).sort({"Age":1})
A fenti lekérdezés csökkenő sorrendben való rendezéséhez cserélje ki az "1"-et "-1"-re.
db.collection_name.find({"Likes":"Chess"}).sort({"Age":-1})
8. Dokumentum frissítése
A MongoDB frissítései megkövetelik, hogy az atomoperátorok határozzák meg, hogyan szeretné elvégezni a frissítést. Itt található a gyakran használt atomoperátorok listája, amelyeket párosíthat egy frissítési lekérdezéssel:
- $set: Új mező hozzáadása vagy meglévő mező módosítása.
- $push: Új elem beszúrása egy tömbbe. Párosítsa a $mindegyik operátort, hogy egyszerre több elemet szúrjon be.
- $pull: Elem eltávolítása a tömbből. Használd vele $in sok elem eltávolításához egyszerre.
- $unset: Mező eltávolítása a dokumentumból.
Egy dokumentum frissítéséhez és új mező hozzáadásához, például:
db.collection_name.updateOne({"Name":"Sandy"}, {"$set":{"Name":"James", "email":"[email protected]"}})
A fentiek az alábbi módon frissítik a megadott dokumentumot:
Az e-mail mező eltávolítása egyszerű a $unset operátor:
db.collection_name.updateOne({"Name":"Sandy"}, {"$unset":{"email":"[email protected]"}})
Vegye figyelembe a következő mintaadatokat:
Beszúrhat egy elemet a meglévőbe tételeket tömb mező segítségével a $push operátor:
db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items":"Plantain"}})
Íme a kimenet:
Használja a $mindegyik operátor több elem beszúrásához egyszerre:
db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items": {"$each":["Almond", "Melon"]}}})
Íme a kimenet:
Mint említettük, a $pull operátor eltávolít egy elemet egy tömbből:
db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items":"Plantain"}})
A frissített adatok így néznek ki:
Tartalmazza a $in kulcsszó, amellyel egyszerre több elemet távolíthat el egy tömbből:
db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items": {"$in":["Almond", "Melon"]} }})
9. Töröljön egy dokumentumot vagy egy mezőt
A deleteOne vagy sok törlése kulcsszó kukába helyez egy dokumentumot egy gyűjteményből. Használat deleteOne dokumentum eltávolítása egy megadott mező alapján:
db.collection_name.deleteOne({"Name":"IDNoble"})
Ha sok közös kulcsú dokumentumot szeretne törölni, használja a sok törlése helyette. Az alábbi lekérdezés törli az összes olyan dokumentumot, amely tartalmazza Sakk mint az övék Tetszik.
db.collection.deleteMany({"Likes":"Chess"})
10. Indexelési művelet
Az indexelés javítja a lekérdezések teljesítményét azáltal, hogy leegyszerűsíti a MongoDB-nek beolvasandó dokumentumok számát. Gyakran célszerű indexet létrehozni a gyakrabban lekérdezett mezőkben.
A MongoDB indexelése hasonló ahhoz, ahogy Ön használjon indexeket az SQL-lekérdezések optimalizálásához. Például egy növekvő index létrehozásához a Név terület:
db.collection.createIndex({"Name":1})
Az indexek felsorolásához:
db.collection.getIndexes()
A fenti csak bevezető. Számos más módszer is létezik erre index létrehozása a MongoDB-ben.
11. Összevonás
Az aggregációs folyamat, a MapReduce továbbfejlesztett változata, lehetővé teszi összetett számítások futtatását és tárolását a MongoDB-n belül. Ellentétben a MapReduce-val, amelyhez külön kell írni a térképet és a kicsinyítési funkciókat JavaScript funkciók, az összesítés egyszerű, és csak beépített MongoDB metódusokat használ.
Vegye figyelembe például a következő értékesítési adatokat:
A MongoDB összesítésével kiszámíthatja és tárolhatja az egyes kategóriákban eladott termékek teljes számát az alábbiak szerint:
db.sales.aggregate([{$group:{"_id":"$Section", "totalSold":{$sum:"$Sold"}}}, {$project:{"_id":0, "totalSold":1, "Section":"$_id"}}])
A fenti lekérdezés a következőket adja vissza:
Master MongoDB lekérdezések
A MongoDB számos lekérdezési módszert kínál, beleértve a lekérdezési teljesítményt javító szolgáltatásokat. A programozási nyelvtől függetlenül a fenti lekérdezési struktúrák kezdetlegesek a MongoDB adatbázisokkal való interakcióhoz.
Az alapszintaxisban azonban lehetnek eltérések. Például, míg egyes programozási nyelvek, mint például a Python, felismerik a kígyók eseteit, mások, köztük a JavaScript, a teve esetet használják. Ügyeljen arra, hogy megvizsgálja, mi működik a választott technológiánál.