S pomočjo tega priročnega vodnika se seznanite s poizvedbami in operacijami MongoDB.

MongoDB je ena najbolj zaželenih in občudovanih baz podatkov NoSQL za profesionalni razvoj. Zaradi svoje prilagodljivosti, razširljivosti in zmožnosti obdelave velikih količin podatkov je najboljša izbira za sodobne aplikacije. Če želite obvladati običajne poizvedbe in operacije MongoDB, ste na pravem mestu.

Ne glede na to, ali želite učinkovito pridobiti in manipulirati s podatki, implementirati robustne podatkovne modele ali zgraditi odzivno aplikacij, bo pridobitev globokega razumevanja običajnih poizvedb in operacij MongoDB nedvomno izboljšala vaše spretnosti.

1. Ustvarite ali zamenjajte zbirke podatkov

Ustvarjanje baze podatkov lokalno prek lupine MongoDB je preprosto, še posebej, če ste nastavili oddaljeno gručo. V MongoDB lahko ustvarite novo bazo podatkov z uporaba ukaz:

use db_name

Medtem ko zgornji ukaz ustvari novo bazo podatkov, ga lahko uporabite za preklop na obstoječo bazo podatkov, ne da bi ustvarili novo iz nič.

instagram viewer

2. Spustite bazo podatkov

Najprej preklopite na bazo podatkov, ki jo želite odstraniti, z uporabo uporaba ukaz kot prej. Nato spustite bazo podatkov z uporabo dropDatabase() ukaz:

use db_name
db.dropDatabase()

3. Ustvari zbirko

Če želite ustvariti zbirko, preklopite na ciljno bazo podatkov. Uporabi createCollection() ključna beseda za izdelavo nove zbirke MongoDB:

db.createCollection("collection_name")

Zamenjati ime_zbirke z izbranim imenom zbirke.

4. Vstavi dokument v zbirko

Med pošiljanjem podatkov v zbirko lahko vstavite en dokument ali niz dokumentov.

Če želite vstaviti en dokument:

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

Zgornjo metodo lahko uporabite tudi za vstavljanje niza dokumentov z enim ID-jem:

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

Če želite vstaviti več dokumentov hkrati, pri čemer ima vsak ločen ID, uporabite vstaviMnogo ključna beseda:

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

5. Pridobite vse dokumente iz zbirke

Poizvedujete lahko po vseh dokumentih iz zbirke z uporabo najti() ključna beseda:

db.collection_name.find()

Zgoraj vrne vse dokumente znotraj navedene zbirke:

Vrnjene podatke lahko tudi omejite na določeno število. Z naslednjim ukazom lahko na primer pridobite samo prva dva dokumenta:

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

6. Filtrirajte dokumente v zbirki

Obstaja veliko načinov za filtriranje dokumentov v MongoDB. Upoštevajte na primer naslednje podatke:

Če poizvedujete le po določenem polju v dokumentu, uporabite najti metoda:

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

Zgoraj vrne vse dokumente, kjer je vrednost Všeč mi je je Wordle. Izpiše samo imena in ignorira ID dokumenta.

Zbirko lahko filtrirate tudi po številčnem faktorju. Recimo, da želite pridobiti imena vseh uporabnikov, starejših od 21 let, uporabite $gt operater:

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

Izhod izgleda takole:

Poskusite zamenjati najti z findOne da vidim kaj se zgodi. Vendar obstaja veliko drugih ključnih besed za filtriranje:

  • $lt: Vse vrednosti so manjše od navedene.
  • $gte: Vrednosti enake ali večje od navedene.
  • $lte: Vrednosti, ki so manjše ali enake definirani.
  • $ekv: pridobi vse vrednosti, ki so enake podani.
  • $ne: Vse vrednosti niso enake navedeni.
  • $in: Uporabite to pri poizvedovanju na podlagi polja. Dobi vse vrednosti, ki se ujemajo s katerim koli elementom v matriki. The $nin ključna beseda deluje ravno nasprotno.

7. Razvrsti poizvedbe

Razvrščanje pomaga urediti poizvedbo v določenem vrstnem redu. Razvrstite jih lahko v padajočem ali naraščajočem vrstnem redu. Upoštevajte, da razvrščanje zahteva številčno referenco.

Če želite na primer razvrstiti v naraščajočem vrstnem redu:

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

Če želite zgornjo poizvedbo razvrstiti v padajočem vrstnem redu, zamenjajte "1" z "-1."

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

8. Posodobite dokument

Posodobitve MongoDB zahtevajo, da atomski operaterji določijo, kako želite izvesti posodobitev. Tukaj je seznam pogosto uporabljenih atomskih operaterjev, ki jih lahko združite s poizvedbo za posodobitev:

  • $set: Dodajte novo polje ali spremenite obstoječe polje.
  • $push: Vstavite nov element v matriko. Seznanite ga z $vsak operater za vstavljanje več elementov hkrati.
  • $povleci: Odstranite element iz matrike. Uporabite ga z $in za odstranitev več predmetov naenkrat.
  • $nenastavljeno: odstranite polje iz dokumenta.

Če želite na primer posodobiti dokument in dodati novo polje:

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

Zgornje posodablja navedeni dokument, kot je prikazano:

Odstranitev e-poštnega polja je preprosta z $nenastavljeno operater:

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

Razmislite o naslednjih vzorčnih podatkih:

Element lahko vstavite v obstoječe predmete matrično polje z uporabo $push operater:

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

Tukaj je rezultat:

Uporabi $vsak operater za vstavljanje več elementov hkrati:

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

Tukaj je rezultat:

Kot že omenjeno, $povleci operater odstrani element iz matrike:

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

Posodobljeni podatki izgledajo takole:

Vključite $in ključna beseda za odstranitev več elementov v nizu naenkrat:

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

9. Brisanje dokumenta ali polja

The deleteOne oz deleteMany ključna beseda odstrani dokument iz zbirke. Uporaba deleteOne za odstranitev dokumenta na podlagi določenega polja:

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

Če želite izbrisati veliko dokumentov s skupnimi ključi, uporabite deleteMany namesto tega. Spodnja poizvedba izbriše vse dokumente, ki vsebujejo Šah kot njihovo Všeč mi je.

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

10. Indeksiranje

Indeksiranje izboljša zmogljivost poizvedb s poenostavitvijo števila dokumentov, ki jih mora MongoDB skenirati. Pogosto je najbolje, da ustvarite indeks za polja, po katerih povprašujete pogosteje.

Indeksiranje MongoDB je podobno kot vi uporabite indekse za optimizacijo poizvedb SQL. Na primer, če želite ustvariti naraščajoči indeks na Ime polje:

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

Za seznam vaših indeksov:

db.collection.getIndexes()

Zgoraj navedeno je le preambula. Obstaja več drugih metod za ustvarjanje indeksa v MongoDB.

11. Združevanje

Cevovod združevanja, izboljšana različica MapReduce, vam omogoča izvajanje in shranjevanje kompleksnih izračunov znotraj MongoDB. Za razliko od MapReduce, ki zahteva ločeno pisanje zemljevida in redukcijskih funkcij funkcije JavaScript, je združevanje preprosto in uporablja samo vgrajene metode MongoDB.

Upoštevajte na primer naslednje podatke o prodaji:

Z združevanjem MongoDB lahko izračunate in shranite skupno število prodanih izdelkov za vsako kategorijo, kot sledi:

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

Zgornja poizvedba vrne naslednje:

Obvladajte poizvedbe MongoDB

MongoDB ponuja številne metode poizvedb, vključno s funkcijami za izboljšanje zmogljivosti poizvedb. Ne glede na vaš programski jezik so zgornje strukture poizvedbe osnovne za interakcijo z bazo podatkov MongoDB.

Vendar pa lahko pride do nekaterih neskladij v osnovnih sintaksah. Na primer, medtem ko nekateri programski jeziki, kot je Python, prepoznajo velike in male črke, drugi, vključno z JavaScriptom, uporabljajo kamelje primere. Prepričajte se, da raziščete, kaj deluje za vašo izbrano tehnologijo.