mongosh-komentotulkin perusteet
Käytätte mongoshia tietokantojen vaihtamiseen, kokoelmien luettelemiseen ja ensimmäisten dokumenttikyselyjen suorittamiseen vuorovaikutteisesti.
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 27017Tietokannoissa 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
// ordersEnsimmä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 resultsTulosten 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();
// 4823Kyselytulosten 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ä.
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
- Mikä on BSON-dokumentti?
- Kokoelmat ja SQL-taulut
- Tietokannat, kokoelmat ja nimiavaruudet
- mongosh-komentotulkin perusteet