Jak začít s MongoDB do 10 minut

Navindu Jayatilake

MongoDB je bohatý dokument orientované NoSQL databáze.

Pokud jste úplným začátečníkem NoSQL, doporučuji vám, abyste se rychle podívali na můj článek NoSQL publikovaný dříve.

Dnes jsem se chtěl podělit o některé základní věci o příkazech MongoDB, jako je dotazování, filtrování dat, mazání, aktualizace atd.

dobře, dost řečí, pojďme do práce!

konfigurace ?

Chcete-li pracovat s MongoDB, musíte nejprve nainstalovat MongoDB do počítače. Chcete-li to provést, navštivte oficiální Centrum stahování a stáhněte si verzi pro konkrétní operační systém. Tady, použil jsem Windows.

po stažení nastavení komunitního serveru MongoDB projdete instalačním procesem „next after next“. Po dokončení přejděte na jednotku C, ve které jste nainstalovali MongoDB. Přejděte do program files a vyberte adresář MongoDB.

C: -> Program Files -> MongoDB -> Server -> 4.0(version) -> bin

v adresáři bin najdete zajímavý pár spustitelných souborů.

  • mongod
  • mongo

promluvme si o těchto dvou souborech.

mongod je zkratka pro „Mongo Daemon“. mongod je proces na pozadí používaný MongoDB. Hlavním účelem mongod je spravovat všechny úkoly serveru MongoDB. Například přijímání požadavků, reakce na klienta a správa paměti.

mongo je shell příkazového řádku, který může komunikovat s klientem(například správci systému a vývojáři).

nyní se podívejme, jak můžeme tento server zprovoznit. Chcete-li to provést v systému Windows, musíte nejprve vytvořit několik adresářů na jednotce C. Otevřete příkazový řádek uvnitř disku C a proveďte následující kroky:

C:\> mkdir data/dbC:\> cd dataC:\> mkdir db

cílem těchto adresářů je MongoDB vyžaduje složku pro ukládání všech údajů. Výchozí cesta k adresáři dat MongoDB je /data/db na jednotce. Proto je nutné, abychom tyto adresáře poskytovali.

Pokud spustíte Server MongoDB bez těchto adresářů, pravděpodobně se zobrazí následující chyba:

snaží spustit mongodb server bez \data\db adresáře

Po vytvoření těch dvou souborů, přes hlavu zase do bin složky, které máte ve svém mongodb adresář a otevřít si shell uvnitř. Spusťte následující příkaz:

mongod

Voilà! Nyní je náš MongoDB server v provozu! ?

abychom mohli pracovat s tímto serverem, potřebujeme prostředníka. Otevřete tedy další okno příkazu uvnitř složky bind a spusťte následující příkaz:

mongo

po spuštění tohoto příkazu přejděte do shellu, který jsme spustili příkaz mongod (což je náš server). Na konci se zobrazí zpráva „Připojení přijato“. To znamená, že naše instalace a konfigurace jsou úspěšné!

Stačí jednoduše spustit v shellu mongo:

db
zpočátku budete mít db názvem ‚test‘

Nastavení Proměnné Prostředí

Chcete-li ušetřit čas, můžete nastavit proměnné prostředí. V systému Windows se to provádí podle níže uvedených nabídek:

Advanced System Settings -> Environment Variables -> Path(Under System Variables) -> Edit

jednoduše zkopírujte cestu naší složky bin a stiskněte OK! V mém případě je to C:\Program Files\MongoDB\Server\4.0\bin

Nyní máte vše nastaveno!

práce s MongoDB

existuje spousta GUI (Graphical User Interface) pro práci s MongoDB serverem, jako je MongoDB Compass, Studio 3T a tak dále.

poskytují grafické rozhraní, takže můžete snadno pracovat s databází a provádět dotazy namísto použití shellu a psaní dotazů ručně.

ale v tomto článku budeme používat příkazový řádek k naší práci.

nyní je čas, abychom se ponořili do příkazů MongoDB, které vám pomohou používat s vašimi budoucími projekty.

  1. otevřete příkazový řádek a zadejte mongod pro spuštění serveru MongoDB.

2. Otevřete další shell a zadejte mongo pro připojení k databázovému serveru MongoDB.

1. Zjištění aktuální databázi jste v

db

Tento příkaz zobrazí aktuální databáze. test je výchozí databáze, která je ve výchozím nastavení.

2. Výpis databází

show databases

v současné době mám čtyři databází. Jsou to: CrudDBadminconfiglocal.

3. Jít do konkrétní databáze

use <your_db_name>

Tady jsem se přestěhoval do local databáze. Můžete to zkontrolovat, pokud zkusíte příkaz db vytisknout aktuální název databáze.

4. Vytvoření databáze

pomocí RDBMS (relační databázové systémy) máme Databáze, Tabulky, řádky a sloupce.

ale v databázích NoSQL, jako je MongoDB, jsou data uložena ve formátu BSON (binární verze JSON). Jsou uloženy ve strukturách nazývaných „sbírky“.

v databázích SQL jsou podobné tabulkám.

SQL podmínky a NoSQL podmínek Victoria Malaya

v Pořádku, pojďme se bavit o tom, jak jsme se vytvořit databázi v mongo shellu.

use <your_db_name>

počkejte, tento příkaz jsme měli dříve! Proč to znovu používám?!

v MongoDB serveru, pokud je vaše databáze již přítomna, pomocí tohoto příkazu přejdete do vaší databáze.

ale v případě, že databáze již není k dispozici, pak MongoDB server se chystá vytvořit databázi pro vás. Poté se do něj dostane.

po vytvoření nové databáze se příkazem show database nezobrazí nově vytvořená databáze. Je to proto, že dokud nemá v sobě žádná data (dokumenty), nebude se zobrazovat ve vašem seznamu db.

5. Vytvoření kolekce

přejděte do nově vytvořené databáze pomocí příkazu use.

ve skutečnosti existují dva způsoby, jak vytvořit kolekci. Podívejme se na obojí.

jedním ze způsobů je vložení dat do kolekce:

db.myCollection.insert({"name": "john", "age" : 22, "location": "colombo"})

tím se vytvoří vaše kolekce myCollection i když kolekce neexistuje. Poté vloží dokument s name a age. Jedná se o neomezené sbírky.

druhý způsob je uveden níže:

2.1 Vytvoření Non-Limitované Kolekce

db.createCollection("myCollection")

2.2 Vytvoření Limitované Kolekce

db.createCollection("mySecondCollection", {capped : true, size : 2, max : 2})

tímto způsobem, budete vytvořit kolekci bez vložené údaje.

„limitovaná kolekce“ má maximální počet dokumentů, který zabraňuje přetečení dokumentů.

v tomto příkladu jsem povolil omezení nastavením jeho hodnoty na true.

size : 2 znamená limit dvou megabajtů, a max: 2 nastaví maximální počet dokumentů pro dva.

Nyní, pokud se pokusíte vložit více než dva dokumenty, aby mySecondCollection find příkaz (který budeme mluvit o tom brzy), budete vidět pouze poslední vložené dokumenty. Mějte na paměti, že to neznamená, že první dokument byl odstraněn-prostě se nezobrazuje.

6. Vložení dat

můžeme vložit data do nové kolekce nebo do kolekce, která byla vytvořena dříve.

způsoby, jak data mohou být uložena v JSON

k Dispozici jsou tři způsoby vkládání údajů.

  1. insertOne() se používá k vložení jediného dokumentu.
  2. insertMany() se používá k vložení více než jednoho dokumentu.
  3. insert() se používá k vkládání dokumentů tolik, kolik chcete.

níže uvádíme několik příkladů:

  • insertOne()
db.myCollection.insertOne( { "name": "navindu", "age": 22 })
  • insertMany()
db.myCollection.insertMany()

insert() metoda je podobná insertMany() metoda.

všimněte si také, že jsme vložili novou vlastnost nazvanou location do dokumentu pro John Doe. Pokud tedy použijete find, uvidíte pouze projohn doe vlastnostlocation je připojena.

to může být výhoda, pokud jde o databáze NoSQL, jako je MongoDB. Umožňuje škálovatelnost.

Úspěšně vložena data

7. Dotazování Dat

Zde je, jak můžete získat všechny údaje z kolekce:

db.myCollection.find()
výsledek

Pokud chcete vidět tato data v čistší, způsob stačí přidat .pretty() do konce. Zobrazí se dokument v pěkně vytištěném formátu JSON.

db.myCollection.find().pretty()
výsledek

Počkejte…V těchto příkladů jste jen si něco jako _id? Jak se to tam dostalo?

No, když vložíte dokument, MongoDB automaticky přidá _id pole, které jednoznačně identifikuje každý dokument. Pokud nechcete, aby se zobrazí, jednoduše spusťte následující příkaz,

db.myCollection.find({}, _id: 0).pretty()

Dále se podíváme na filtrování údajů.

Chcete-li zobrazit nějaký konkrétní dokument, můžete zadat jeden detail dokumentu, který chcete zobrazit.

db.myCollection.find( { name: "john" })
výsledek

řekněme, že chcete jen k zobrazení lidí, jejichž věk je menší než 25. Pro filtrování můžete použít $lt.

db.myCollection.find( { age : {$lt : 25} })

Podobně $gt znamená větší než, $lte je „menší než nebo rovno“, $gte je „větší než nebo rovno“ $ne „není rovno“.

8. Aktualizace dokumentů

řekněme, že chcete aktualizovat něčí adresu nebo věk, jak byste to mohli udělat? Podívejte se na další příklad:

db.myCollection.update({age : 20}, {$set: {age: 23}})

prvním argumentem je pole, který dokument chcete aktualizovat. Zde specifikuji age pro jednoduchost. V produkčním prostředí můžete použít něco jako pole _id.

pro aktualizaci jedinečného řádku je vždy lepší použít něco jako _id. Je to proto, že více polí může mít stejné age a name. Pokud tedy aktualizujete jeden řádek, ovlivní to všechny řádky, které mají stejný název a věk.

výsledek

Pokud se vám aktualizace dokumentu tímto způsobem se nový majetek, řekněme location například, dokument bude aktualizován s novým atributem. A pokud uděláte find, výsledek bude:

výsledek

Pokud potřebujete odstranit vlastnost z jednoho dokumentu, jsi to mohl udělat něco takového (řekněme, že chcete age být pryč):

db.myCollection.update({name: "navindu"}, {$unset: age});

9. Odstranění dokumentu

Jak jsem již zmínil dříve, když jste aktualizaci nebo odstranit dokument, stačí zadat _idnameagelocation.

db.myCollection.remove({name: "navindu"});

10. Odstranění kolekce

db.myCollection.remove({});

Poznámka: Toto se nerovná metodě drop(). Rozdíl je v drop() se používá k odstranění všechny dokumenty do sbírky, ale na remove() metoda se používá k odstranění všech dokumentů, spolu s kolekci sám.

logické operátory

MongoDB poskytuje logické operátory. Níže uvedený obrázek shrnuje různé typy logických operátorů.

odkaz: MongoDB manuální

řekněme, že chcete, aby zobrazení lidí, jejichž věk je menší než 25, a také jejíž umístění je Colombo. Co bychom mohli dělat?

můžeme použít$and operátor!

db.myCollection.find({$and:});

V neposlední řadě hovoříme o agregaci.

agregace

rychlá připomínka toho, co jsme se dozvěděli o agregačních funkcích v databázích SQL:

agregační funkce v SQL databázích. ref : Návod Brána

Jednoduše řečeno, agregace skupin hodnot z více dokumentů a shrnuje je v nějakým způsobem.

Představte si, že bychom měli mužské a ženské studenty ve sbírce recordBook a chceme celkový počet na každém z nich. Abychom získali součet samců a samic, mohli bychom použít $group agregátní funkci.

db.recordBook.aggregate();
výsledek

Balení

Takže, jsme se zabývali základy MongoDB, které byste mohli potřebovat v budoucnu k sestavení aplikace. Doufám, že se vám tento článek líbil-díky za přečtení!



Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.