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

instagram viewer

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.