MongoDB Academy · Oppitunti

mongosh-komentotulkin perusteet

Käytätte mongoshia tietokantojen vaihtamiseen, kokoelmien luettelemiseen ja ensimmäisten dokumenttikyselyjen suorittamiseen vuorovaikutteisesti.

Oppitunti 4/413 vaihetta

mongosh-komentotulkin perusteet on ilmainen MongoDB Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu MongoDB Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. MongoDB Academy-kurssilla on yhteensä 4 oppituntia.

Mikä on mongosh?

mongosh on MongoDB:n virallinen komentotulkki, joka perustuu Node.js:ään — joten voitte käyttää siinä suoraan nykyaikaista JavaScriptiä. Se on tavallinen tapa muodostaa yhteys komentoriviltä.

# Install mongosh on macOS
brew install mongosh

# Connect to a local MongoDB instance
mongosh

# Connect to an Atlas cluster
mongosh 'mongodb+srv://user:pass@cluster0.abc.mongodb.net/myapp'

# Connect with explicit host and port
mongosh --host localhost --port 27017

Tietokannoissa ja kokoelmissa navigointi

Muutamat komennot auttavat liikkumaan: show dbs luettelee tietokannat, use vaihtaa tietokantaa ja show collections luettelee sen sisällön. db-muuttuja viittaa aina nykyiseen tietokantaan.

// Navigate in mongosh
show dbs
// admin   0.000GB
// myapp   0.008GB

use myapp
// switched to db myapp

db
// myapp

show collections
// users
// orders

Ensimmäinen lisäys

Ensimmäisen dokumentin lisääminen vie yhden rivin: insertOne. Se palauttaa uuden _id-arvon, ja nopea findOne vahvistaa tallennuksen. Koodi käy läpi molemmat vaiheet.

// Insert one document
db.users.insertOne({
  name: 'Alice',
  email: 'alice@example.com',
  age: 28,
  createdAt: new Date()
});
// { acknowledged: true, insertedId: ObjectId('64a2f3b1...') }

// Verify it was stored
db.users.findOne();
// { _id: ObjectId('64a2f3b1...'), name: 'Alice', ... }

Peruskyselyt find()-komennolla

find palauttaa kaikki vastaavat dokumentit. Voitte rajata tuloksia välittämällä sille suodattimen tai käyttää findOne-komentoa täsmälleen yhden dokumentin hakemiseen. Tyhjä suodatin palauttaa kaiken. Koodi näyttää muutaman esimerkin.

// Find all documents
db.users.find({});

// Find with an equality filter
db.users.find({ name: 'Alice' });

// findOne by _id
db.users.findOne({ _id: ObjectId('64a2f3b1...') });

// Find with multiple conditions (implicit AND)
db.users.find({ age: 28, active: true });

// Type 'it' in shell to get next 20 results

Tulosten laskeminen ja rajoittaminen

Muutamat apurit säätelevät palautettavien tulosten määrää: countDocuments sekä kyselyn limit- ja skip-operaatiot. Yhdessä limit ja skip muodostavat sivutuksen perustan. Koodi näyttää ne.

// Count active users
db.users.countDocuments({ active: true });
// 842

// Get first 5 users
db.users.find({}).limit(5);

// Skip first 10, get next 5 (page 3 of 5-per-page)
db.users.find({}).skip(10).limit(5);

// Fast approximate total
db.users.estimatedDocumentCount();
// 4823

Kyselytulosten lajittelu

Ketjuttakaa sort tulosten järjestämiseksi — 1 tarkoittaa nousevaa ja -1 laskevaa järjestystä. Voitte lajitella samanaikaisesti myös usean kentän perusteella käyttääksenne niitä tasatilanteiden ratkaisijoina. Koodi näyttää muutaman lajittelun.

// Sort by age descending (oldest first)
db.users.find({}).sort({ age: -1 });

// Sort by last name then first name
db.users.find({}).sort({ lastName: 1, firstName: 1 });

// Most recently created first
db.users.find({}).sort({ createdAt: -1 }).limit(10);

// Combined: find active users, sort by age, limit to 5
db.users.find({ active: true }).sort({ age: 1 }).limit(5);

Projektiot: kenttien valitseminen

Projektio valitsee palautettavat kentät — 1 sisällyttää kentän ja 0 jättää sen pois. Se vähentää verkon kuormitusta ja muistin käyttöä, kun ette tarvitse kaikkia kenttiä. Koodi näyttää esimerkkejä.

// Include only name and email (exclude everything else)
db.users.find({}, { name: 1, email: 1 });
// { _id: ObjectId('...'), name: 'Alice', email: 'alice@...' }

// Exclude _id too
db.users.find({}, { name: 1, email: 1, _id: 0 });
// { name: 'Alice', email: 'alice@...' }

// Exclude sensitive fields
db.users.find({}, { passwordHash: 0, ssn: 0 });

Kaunis tulostus ja komentotulkin apurit

mongosh muotoilee tulokset automaattisesti helposti luettavaan muotoon. Käteviä apureita ovat muun muassa toArray, forEach, distinct ja explain, jonka avulla voitte tarkastella kyselyn suoritustapaa. Koodi näyttää ne.

// Get all distinct cities from user addresses
db.users.distinct('address.city');
// ['Chicago', 'London', 'Tokyo', ...]

// Iterate with forEach
db.users.find({ active: true }).forEach(user => {
  print(user.name + ' - ' + user.email);
});

// Check if query uses an index
db.users.find({ email: 'alice@test.com' }).explain('executionStats');

Nopeat päivitys- ja poistokomennot

Käsittelette täydellisen CRUD-toiminnallisuuden myöhemmin, mutta tärkeimmät komennot ovat updateOne, deleteOne ja deleteMany. Käyttäkää päivityksissä aina operaattoria $set, tai korvaatte koko dokumentin!

// Update a specific field (CORRECT: use $set)
db.users.updateOne(
  { email: 'alice@example.com' },
  { $set: { age: 29, updatedAt: new Date() } }
);

// Delete one document
db.users.deleteOne({ email: 'alice@example.com' });

// WARNING: This REPLACES the entire document (no $set):
// db.users.updateOne({ email: '...' }, { age: 29 });
// Now the document has ONLY { _id, age: 29 } !!!

Komentotulkin muuttujat ja skriptit

Koska mongosh on oikea JavaScript-ympäristö, voitte automatisoida tehtäviä käyttämällä muuttujia, silmukoita ja skriptejä — se on huomattavasti tehokkaampaa kuin pelkkä SQL-komentorivityökalu. Koodi näyttää silmukan.

// Variable-driven query
const targetCity = 'Chicago';
const users = db.users.find({ 'address.city': targetCity }).toArray();
print('Users in ' + targetCity + ': ' + users.length);

// For loop to seed test data
for (let i = 1; i <= 10; i++) {
  db.products.insertOne({ name: 'Product ' + i, price: i * 10 });
}

// Run from CLI without entering the shell:
// mongosh mydb --eval "db.users.countDocuments({})"

Yhteyden muodostaminen Atlasiin komentotulkista

Muodostaaksesi yhteyden Atlasiin kopioi yhteysmerkkijono sen käyttöliittymästä — se käyttää mongodb+srv-osoitetta, joka löytää klusterin DNS:n avulla. Tallenna se ympäristömuuttujaan, älä komentotulkin historiaan.

# Store URI in environment variable (never hard-code credentials)
export MONGODB_URI='mongodb+srv://alice:s3cr3t@cluster0.abc.mongodb.net'

# Connect from shell
mongosh $MONGODB_URI

# Switch to your app database
use myapp

# Verify connection
db.runCommand({ ping: 1 })
# { ok: 1 }

Pikatarkistus

Testaa tämän oppitunnin MongoDB:tä ja NoSQL-tietokantoja koskeva ymmärryksesi.

Oppitunnin kertaus

Opitte, että mongosh on JavaScript-komentotulkki, projektiot valitsevat kentät ja sort-, limit- ja skip-operaatioita voi ketjuttaa tulosten muotoilemiseksi. Seuraavaksi käsittelemme dokumenttien lisäämistä.

Aloita maksutta

Opi JavaScript tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”mongosh-komentotulkin perusteet” ilmainen?

Kyllä – oppitunnin ”mongosh-komentotulkin perusteet” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko MongoDB Academy-kurssin, päivitä CoddyKit PROhon. MongoDB Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”mongosh-komentotulkin perusteet”?

Käytätte mongoshia tietokantojen vaihtamiseen, kokoelmien luettelemiseen ja ensimmäisten dokumenttikyselyjen suorittamiseen vuorovaikutteisesti. Harjoittelet MongoDB Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni MongoDB Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin MongoDB Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”mongosh-komentotulkin perusteet”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä MongoDB Academy-oppitunnilla?

Kyllä. Jokainen MongoDB Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Mikä on BSON-dokumentti?
  2. Kokoelmat ja SQL-taulut
  3. Tietokannat, kokoelmat ja nimiavaruudet
  4. mongosh-komentotulkin perusteet
← Takaisin: MongoDB Academy