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
- Schema-less deb hamma documentga turlicha field turlari yozish keyingi query va mappingni buzadi.
Mashqlar
- Topic va comment uchun embedding va referencingning o'qish/yozish xarajatlarini solishtiring.
- Bir xil ma'lumotni relatsion jadval va Mongo document ko'rinishida modellashtirib solishtiring.
Teglar: pdp, nazariya, modul-10