1 / 8

🍃 MongoDB Kirish

🎯 Darsning Maqsadi

MongoDB NoSQL ma'lumotlar bazasi tizimi bilan tanishish va asosiy operatsiyalarni o'rganish.

📋 Dars Rejasi

  • MongoDB nima?
  • O'rnatish va sozlash
  • Collections va Documents
  • Asosiy operatsiyalar
  • Python bilan ulanish

🍃 MongoDB Nima?

📖 Ta'rif

MongoDB - bu ochiq kodli, document-oriented NoSQL ma'lumotlar bazasi tizimi bo'lib, JSON-ga o'xshash hujjatlarda ma'lumotlarni saqlaydi.

✅ MongoDB Afzalliklari

  • Document-based - JSON format
  • Flexible Schema - Moslashuvchan
  • Scalable - Oson kengaytirish
  • Fast - Tez o'qish/yozish

🎯 Xususiyatlari

  • NoSQL - Relational emas
  • JSON-like - BSON format
  • Indexing - Tez qidirish
  • Aggregation - Murakkab tahlil

⚙️ MongoDB O'rnatish

💻 O'rnatish Qadamlari

# Windows uchun # https://www.mongodb.com/try/download/community # macOS uchun brew tap mongodb/brew brew install mongodb-community # Ubuntu/Debian uchun wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add - sudo apt-get update sudo apt-get install -y mongodb-org # MongoDB'ni ishga tushirish mongod --dbpath /data/db

🔧 MongoDB Compass

  • MongoDB Compass - Grafik interfeys
  • MongoDB Shell - Terminal orqali
  • Studio 3T - Professional IDE

📚 Collections va Documents

📖 MongoDB Strukturasi

// Database yaratish va tanlash use my_blog // Collection yaratish (avtomatik) db.users.insertOne({ username: "john_doe", email: "[email protected]", profile: { firstName: "John", lastName: "Doe", age: 30 }, hobbies: ["reading", "gaming", "coding"], createdAt: new Date() }) // Document struktura { "_id": ObjectId("..."), "username": "john_doe", "email": "[email protected]", "profile": { "firstName": "John", "lastName": "Doe", "age": 30 }, "hobbies": ["reading", "gaming", "coding"], "createdAt": ISODate("2024-01-15T10:30:00Z") }

📊 Collections

  • users - Foydalanuvchilar
  • posts - Maqolalar
  • comments - Izohlar
  • categories - Kategoriyalar

📄 Documents

  • JSON-like - BSON format
  • Flexible - Turli struktura
  • Nested - Ichki obyektlar
  • Arrays - Massivlar

🔧 Asosiy Operatsiyalar

➕ CREATE - Ma'lumot Qo'shish

// Bitta hujjat qo'shish db.users.insertOne({ username: "jane_smith", email: "[email protected]", firstName: "Jane", lastName: "Smith", age: 25, isActive: true, createdAt: new Date() }) // Ko'p hujjat qo'shish db.users.insertMany([ { username: "bob_wilson", email: "[email protected]", firstName: "Bob", lastName: "Wilson", age: 35 }, { username: "alice_brown", email: "[email protected]", firstName: "Alice", lastName: "Brown", age: 28 } ])

📖 READ - Ma'lumotlarni O'qish

// Barcha hujjatlarni olish db.users.find() // Shartli qidirish db.users.find({ age: { $gte: 25 } }) // Ma'lum ustunlarni olish db.users.find({}, { username: 1, email: 1, _id: 0 }) // Bitta hujjat db.users.findOne({ username: "john_doe" }) // Tartiblash va cheklash db.users.find().sort({ createdAt: -1 }).limit(10)

✏️ UPDATE va DELETE

🔄 UPDATE Operatsiyalar

// Bitta hujjatni yangilash db.users.updateOne( { username: "john_doe" }, { $set: { age: 31, updatedAt: new Date() } } ) // Ko'p hujjatlarni yangilash db.users.updateMany( { isActive: true }, { $set: { lastLogin: new Date() } } ) // Ustun qo'shish db.users.updateOne( { username: "john_doe" }, { $set: { bio: "Software Developer" } } ) // Massivga element qo'shish db.users.updateOne( { username: "john_doe" }, { $push: { hobbies: "swimming" } } )

🗑️ DELETE Operatsiyalar

// Bitta hujjatni o'chirish db.users.deleteOne({ username: "test_user" }) // Ko'p hujjatlarni o'chirish db.users.deleteMany({ isActive: false }) // Barcha hujjatlarni o'chirish (EHTIYOT!) db.users.deleteMany({}) // Shartli o'chirish db.users.deleteMany({ createdAt: { $lt: new Date("2024-01-01") } })

🐍 Python bilan Ulanish

📦 Kerakli Kutubxonalar

# pymongo kutubxonasini o'rnatish pip install pymongo # Yoki pip install pymongo[srv]

🔌 Ulanish va Operatsiyalar

from pymongo import MongoClient from datetime import datetime # MongoDB'ga ulanish client = MongoClient('mongodb://localhost:27017/') db = client['my_blog'] collection = db['users'] # Ma'lumot qo'shish def create_user(username, email, first_name, last_name): user_data = { 'username': username, 'email': email, 'firstName': first_name, 'lastName': last_name, 'isActive': True, 'createdAt': datetime.now() } result = collection.insert_one(user_data) print(f"Foydalanuvchi yaratildi: {result.inserted_id}") return result.inserted_id # Ma'lumotlarni o'qish def get_users(): users = collection.find() for user in users: print(f"Username: {user['username']}, Email: {user['email']}") # Ma'lumotni yangilash def update_user(username, **updates): result = collection.update_one( {'username': username}, {'$set': updates} ) print(f"{result.modified_count} ta hujjat yangilandi") # Ma'lumotni o'chirish def delete_user(username): result = collection.delete_one({'username': username}) print(f"{result.deleted_count} ta hujjat o'chirildi") # Funksiyalarni ishlatish create_user('test_user', '[email protected]', 'Test', 'User') get_users() update_user('test_user', age=25, bio='Test user') delete_user('test_user')

📝 Xulosa

🎯 O'rganilgan Mavzular

  • MongoDB o'rnatish va sozlash
  • Collections va Documents
  • Asosiy CRUD operatsiyalar
  • Python bilan ulanish
  • NoSQL vs SQL farqlari

✅ MongoDB Afzalliklari

  • Moslashuvchan struktura
  • Tez o'qish/yozish
  • JSON format
  • Oson kengaytirish

💡 Keyingi Qadamlar

  • Aggregation Pipeline
  • Indexing va Performance
  • Replica Sets
  • Sharding

🏆 Amaliy Mashq

MongoDB bilan blog tizimi yarating va unda ma'lumotlar bilan ishlang!