10-modul · 1-dars: MongoDB · NoSQL

Daraja: Ilg'or

MongoDB · NoSQL. Advanced backend bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

## Dars maqsadi MongoDB · NoSQL tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.

## Nazariya MongoDB hujjatli NoSQL bazadir; documentlar BSON ko'rinishida collectionlarga saqlanadi. Moslashuvchan schema validation kerak emas degani emas. Ichma-ich, birga o'qiladigan ma'lumotni embed qilish qulay; tez-tez mustaqil o'zgaradigan yoki juda katta bog'lanishlar reference talab qilishi mumkin. SQL JOIN modelini o'zgartirmasdan ko'chirish yaxshi dizayn emas. Comparison operatorlar $eq/$gt/$gte/$lt/$lte/$in, logical $and/$or/$not/$nor, element $exists/$type orqali filtrlanadi. Array uchun $all/$size/$elemMatch; update uchun $set/$unset/$inc/$push/$pull qo'llanadi. Aggregation pipeline $match, $group, $project va $sort kabi bosqichlardan natija tuzadi. distinct maydonning noyob qiymatlarini qaytaradi. sort bilan limit/skip sahifalash oddiy, ammo katta offset qimmat; barqaror kalitli cursor/range paginationni ko'rib chiqing. Unique index DB darajasida takrorni cheklaydi. Rolli user yaratib minimal database huquqi bering; internetga autentifikatsiyasiz port ochmang. Tranzaksiya va replication imkoniyatlari deploymentga bog'liq, shuning uchun NoSQLda hech qachon transaction bo'lmaydi degan hukm xato.

## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/10-module%28Spring%20Boot%20Part%20%7C%7C%29.md) [Rasmiy qo‘llanma](https://docs.spring.io/spring-boot/reference/)

Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.

Kod misoli

// mongosh, faqat test collection:
db.study.insertOne({title: "Java", level: 1});
db.study.find({level: {$gte: 1}}).sort({_id: 1}).limit(10);
db.study.createIndex({title: 1}, {unique: true});

Keng tarqalgan xatolar

Mashqlar

Teglar: pdp, nazariya, modul-10

Interaktiv ko'rinish (viktorina, izohlar, tarix)