Získajte prehľad o otázkach a operáciách MongoDB pomocou tohto praktického sprievodcu.

MongoDB je jednou z najžiadanejších a najobdivovanejších NoSQL databáz pre profesionálny rozvoj. Jeho flexibilita, škálovateľnosť a schopnosť spracovať veľké objemy údajov z neho robia najlepšiu voľbu pre moderné aplikácie. Ak chcete zvládnuť bežné dotazy a operácie MongoDB, ste na správnom mieste.

Či už chcete efektívne získavať a manipulovať s údajmi, implementovať robustné dátové modely alebo vytvárať citlivé aplikácie, hlboké pochopenie bežných MongoDB dotazov a operácií nepochybne zlepší váš zručnosti.

1. Vytvorte alebo prepnite databázy

Vytvorenie databázy lokálne prostredníctvom prostredia MongoDB Shell je jednoduché, najmä ak ste nastavili vzdialený klaster. Môžete vytvoriť novú databázu v MongoDB pomocou použitie príkaz:

use db_name

Zatiaľ čo vyššie uvedený príkaz vytvára novú databázu, môžete ho použiť na prepnutie na existujúcu databázu bez vytvorenia novej od začiatku.

2. Drop Database

Najprv sa prepnite na databázu, ktorú chcete zrušiť, pomocou

instagram viewer
použitie príkaz ako predtým. Potom zrušte databázu pomocou dropDatabase() príkaz:

use db_name
db.dropDatabase()

3. Vytvorte zbierku

Ak chcete vytvoriť kolekciu, prepnite sa do cieľovej databázy. Použi createCollection() kľúčové slovo na vytvorenie novej kolekcie MongoDB:

db.createCollection("collection_name")

Nahradiť názov_kolekcie s vybratým názvom kolekcie.

4. Vložiť dokument do zbierky

Pri odosielaní údajov do kolekcie môžete vložiť jeden dokument alebo pole dokumentov.

Ak chcete vložiť jeden dokument:

db.collection_name.insertOne({"Name":"Idowu", "Likes":"Chess"})

Vyššie uvedený spôsob môžete použiť aj na vloženie poľa dokumentov s jedným ID:

db.collection_name.insertOne([{"Name":"Idowu", "Likes":"Chess"}, {"Language": "Mongo", "is_admin": true}])

Ak chcete vložiť veľa dokumentov naraz, pričom každý má samostatné ID, použite vložiťMnoho kľúčové slovo:

db.collection_name.insertMany([{"Name":"Idowu", "Likes":"Chess"}, {"Name": "Paul", "Likes": "Wordle"}])

5. Získajte všetky dokumenty zo zbierky

Môžete sa dotazovať na všetky dokumenty z kolekcie pomocou Nájsť() kľúčové slovo:

db.collection_name.find()

Vyššie uvedené vráti všetky dokumenty v zadanej kolekcii:

Môžete tiež obmedziť vrátené údaje na konkrétny počet. Na získanie iba prvých dvoch dokumentov môžete použiť napríklad nasledujúci príkaz:

db.collection_name.find().limit(2)

6. Filtrujte dokumenty v zbierke

Existuje mnoho spôsobov, ako filtrovať dokumenty v MongoDB. Zvážte napríklad nasledujúce údaje:

Ak sa dotazujete iba na konkrétne pole v dokumente, použite príkaz Nájsť metóda:

db.collection_name.find({"Likes":"Wordle"}, {"_id":0, "Name":1})

Vyššie uvedené vráti všetky dokumenty, ktorých hodnota Páči sa mi je Wordle. Vypíše iba názvy a ignoruje ID dokumentu.

Kolekciu môžete filtrovať aj podľa číselného faktora. Povedzme, že chcete získať mená všetkých používateľov starších ako 21 rokov, použite $ gt operátor:

db.collection_name.find({"Likes":"Chess", "Age":{"$gt":21}}, {"_id":0, "Name":1})

Výstup vyzerá takto:

Skúste vymeniť Nájsť s findOne aby ste videli, čo sa stane. Existuje však mnoho ďalších kľúčových slov na filtrovanie:

  • $lt: Všetky hodnoty sú menšie ako zadaná hodnota.
  • $gte: Hodnoty rovnaké alebo väčšie ako zadaná hodnota.
  • $lte: Hodnoty, ktoré sú menšie alebo rovné definovanej hodnote.
  • $ekv: Získa všetky hodnoty rovné zadanej hodnote.
  • $ne: Všetky hodnoty sa nerovnajú zadanej hodnote.
  • $in: Toto použite pri dotazovaní na základe poľa. Získa všetky hodnoty zodpovedajúce ktorejkoľvek z položiek v poli. The $ deväť kľúčové slovo robí opak.

7. Zoradiť dotazy

Triedenie pomáha usporiadať dotaz v konkrétnom poradí. Môžete triediť v zostupnom alebo vzostupnom poradí. Majte na pamäti, že triedenie vyžaduje číselný odkaz.

Ak chcete napríklad zoradiť vzostupne:

db.collection_name.find({"Likes":"Chess"}).sort({"Age":1})

Ak chcete zoradiť vyššie uvedený dopyt v zostupnom poradí, nahraďte „1“ za „-1“.

db.collection_name.find({"Likes":"Chess"}).sort({"Age":-1})

8. Aktualizujte dokument

Aktualizácie MongoDB vyžadujú, aby atómoví operátori špecifikovali, ako chcete aktualizáciu vykonať. Tu je zoznam bežne používaných atómových operátorov, ktoré môžete spárovať s aktualizačným dotazom:

  • $set: Pridajte nové pole alebo zmeňte existujúce pole.
  • $push: Vložte novú položku do poľa. Spárujte ho s $každý operátora na vloženie viacerých položiek naraz.
  • $pull: Odstránenie položky z poľa. Použite ho s $in na odstránenie mnohých položiek naraz.
  • $nenastavené: Odstránenie poľa z dokumentu.

Ak chcete aktualizovať dokument a pridať nové pole, napríklad:

db.collection_name.updateOne({"Name":"Sandy"}, {"$set":{"Name":"James", "email":"[email protected]"}})

Vyššie uvedené aktualizuje špecifikovaný dokument, ako je znázornené:

Odstránenie poľa e-mailu je jednoduché pomocou $nenastavené operátor:

db.collection_name.updateOne({"Name":"Sandy"}, {"$unset":{"email":"[email protected]"}})

Zvážte nasledujúce vzorové údaje:

Položku môžete vložiť do existujúcej položky pole pomocou $push operátor:

db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items":"Plantain"}})

Tu je výstup:

Použi $každý operátor na vloženie viacerých položiek naraz:

db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items": {"$each":["Almond", "Melon"]}}})

Tu je výstup:

Ako už bolo spomenuté, $pull operátor odstráni položku z poľa:

db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items":"Plantain"}})

Aktualizované údaje vyzerajú takto:

Zahrňte $in kľúčové slovo na odstránenie mnohých položiek v poli naraz:

db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items": {"$in":["Almond", "Melon"]} }})

9. Odstráňte dokument alebo pole

The deleteOne alebo deleteMany kľúčové slovo odpadne dokument zo zbierky. Použite deleteOne na odstránenie dokumentu na základe zadaného poľa:

db.collection_name.deleteOne({"Name":"IDNoble"})

Ak chcete odstrániť veľa dokumentov so spoločnými kľúčmi, použite deleteMany namiesto toho. Dotaz nižšie vymaže všetky dokumenty, ktoré obsahujú šach ako ich Páči sa mi.

db.collection.deleteMany({"Likes":"Chess"})

10. Operácia indexovania

Indexovanie zlepšuje výkon dotazov zefektívnením počtu dokumentov, ktoré MongoDB potrebuje na skenovanie. Často je najlepšie vytvoriť index pre polia, ktoré dopytujete častejšie.

Indexovanie MongoDB je podobné ako vy použite indexy na optimalizáciu SQL dotazov. Napríklad na vytvorenie vzostupného indexu na názov lúka:

db.collection.createIndex({"Name":1})

Zoznam indexov:

db.collection.getIndexes()

Vyššie uvedené je len preambula. Na to existuje niekoľko ďalších metód vytvorenie indexu v MongoDB.

11. Agregácia

Agregačný kanál, vylepšená verzia MapReduce, vám umožňuje spúšťať a ukladať zložité výpočty zvnútra MongoDB. Na rozdiel od MapReduce, ktorý vyžaduje samostatné písanie mapy a funkcie zmenšenia JavaScript funkcie, agregácia je jednoduchá a používa iba vstavané metódy MongoDB.

Zvážte napríklad nasledujúce údaje o predaji:

Pomocou agregácie MongoDB môžete vypočítať a uložiť celkový počet produktov predaných pre každú kategóriu nasledovne:

db.sales.aggregate([{$group:{"_id":"$Section", "totalSold":{$sum:"$Sold"}}}, {$project:{"_id":0, "totalSold":1, "Section":"$_id"}}])

Vyššie uvedený dotaz vráti nasledovné:

Hlavné otázky MongoDB

MongoDB ponúka mnoho metód dotazovania vrátane funkcií na zlepšenie výkonu dotazov. Bez ohľadu na váš programovací jazyk sú vyššie uvedené štruktúry dotazov základné pre interakciu s databázou MongoDB.

V základných syntaxách však môžu existovať určité nezrovnalosti. Napríklad, zatiaľ čo niektoré programovacie jazyky ako Python rozpoznávajú prípady hadov, iné, vrátane JavaScriptu, používajú ťavie puzdro. Uistite sa, že preskúmate, čo funguje pre vami zvolenú technológiu.