MongoDB / MongoDB Shell (mongosh)

MongoDB Shell (mongosh)

mongosh бол MongoDB-тэй командын мөрөөр харилцах албан ёсны хэрэгсэл. Database үүсгэх, document оруулах, query ажиллуулах бүх үйлдлийг mongosh-оор хийж болно.

mongosh суулгах

Windows

mongosh татах хуудас хаягаас Windows MSI татаж суулгана.

Суулгасны дараа Command Prompt-д шалгана:

bash
mongosh --version
# Гаралт: 2.x.x

macOS

bash
brew install mongosh

Linux (Ubuntu)

bash
sudo apt-get install -y mongodb-mongosh

Atlas-д холбох

Atlas cluster-тайгаа холбогдохын тулд connection string шаардлагатай.

Connection string авах:

  1. Atlas dashboard → "Connect" дарна
  2. "Shell" сонгоно
  3. Connection string хуулна
bash
mongosh "mongodb+srv://mycluster.xxxxx.mongodb.net/" --username myuser

Нууц үгийг асуухад оруулна. Амжилттай холбогдвол:

код
Current Mongosh Log ID: 64abc1234567890abcdef012
Connecting to: mongodb+srv://...
Using MongoDB: 7.0.x
Using Mongosh: 2.x.x

Atlas atlas-xxxxx-shard-0 [primary] test>

test> prompt харагдвал холбогдсон. Одоо байгаа database нь test.

Локал холболт:

bash
mongosh
# эсвэл
mongosh "mongodb://localhost:27017"

Үндсэн команд

Database харах ба сонгох

javascript
// Байгаа бүх database-г харах
show dbs

// Гаралт:
// admin   0.000 GB
// local   0.000 GB
// test    0.000 GB

// Database сонгох (байхгүй бол автоматаар үүснэ)
use school

// Одоо байгаа database-г харах
db
// Гаралт: school

Анхаарна уу: use school хийсэн ч school database нь эхний document оруулах хүртэл show dbs-д харагдахгүй.

Collection харах

javascript
// Одоо байгаа database-ийн collection-уудыг харах
show collections

// Гаралт (хэрэв байвал):
// students
// courses

Тусламж авах

javascript
// Ерөнхий тусламж
help;

// Тодорхой команды тусламж
db.help();
db.students.help();

Хурдан эхлэх — анхны жишээ

javascript
// 1. School database руу орох
use school

// 2. Student нэмэх
db.students.insertOne({
  name: "Болд Батаа",
  age: 22,
  city: "Улаанбаатар"
})

// Гаралт:
// {
//   acknowledged: true,
//   insertedId: ObjectId('64abc1234567890abcdef012')
// }

// 3. Бүх student-ийг харах
db.students.find()

// Гаралт:
// [
//   {
//     _id: ObjectId('64abc1234567890abcdef012'),
//     name: 'Болд Батаа',
//     age: 22,
//     city: 'Улаанбаатар'
//   }
// ]

Хэрэгтэй тушаалууд

Ерөнхий

| Команд | Тайлбар | | ------------------ | ------------------------ | | show dbs | Бүх database жагсаах | | use <db> | Database сонгох / үүсгэх | | db | Одоогийн database харах | | show collections | Collection жагсаах | | exit | Гарах | | cls | Дэлгэц цэвэрлэх |

Collection

| Команд | Тайлбар | | ----------------------------- | ----------------- | | db.createCollection("name") | Collection үүсгэх | | db.name.drop() | Collection устгах | | db.dropDatabase() | Database устгах |

Статистик

javascript
// Database-ийн дэлгэрэнгүй мэдээлэл
db.stats();

// Collection-ийн дэлгэрэнгүй мэдээлэл
db.students.stats();

// Collection дахь document тоо
db.students.countDocuments();

mongosh Editor горим

Урт код бичихэд editor горим ашиглана:

javascript
// Editor нээх
edit myFunction

// Эсвэл олон мөр бичих
// Enter дарахад автоматаар илрүүлнэ
db.students.insertOne({
  name: "Дорж",        // Enter → үргэлжилнэ
  age: 25,             // Enter → үргэлжилнэ
  city: "Дархан"       // Enter → үргэлжилнэ
})                     // Enter → ажиллуулна

.mongoshrc.js — тохиргоо файл

Гэрийн директорт .mongoshrc.js файл үүсгэж mongosh эхлэх бүрт ажиллуулах код бичиж болно:

javascript
// ~/.mongoshrc.js
console.log("MongoDB Shell бэлэн!");

// Богино нэрс тодорхойлох
const s = db.students;

Нийтлэг алдаа ба шийдэл

Холбогдохгүй байна:

код
MongoNetworkError: connection timed out

→ Atlas IP whitelist шалгана. Одоогийн IP нэмэгдсэн эсэхийг шалгана.

Нэвтрэх алдаа:

код
MongoServerError: Authentication failed

→ Username, нууц үгийг шалгана. Нууц үгэнд тусгай тэмдэгт (@, # гэх мэт) байвал URL encode хийх шаардлагатай.

Database харагдахгүй:

javascript
show dbs  // school харагдахгүй

→ Хамгийн багадаа нэг document оруулсны дараа харагдана.

Дараагийн хичээлд:

insertOne ба insertMany ашиглан collection-д document оруулна.