Мазмунга өтүү

Маалымат базалары: MongoDB жана Mongoose

Сабактын башталышы

Маалымат базалары: MongoDB жана Mongoose

Документтик база менен колдонмонун маалыматын сактаңыз, сурап алыңыз жана түзүмдөштүрүңүз

Негизги идея: Ушул убакка чейин сиздин Node колдонмолоруңуз маалыматты эстутумда же JSON файлдарында сактап келген, ал колдонмо чоңойгон сайын жоголуп же чаташат. Маалымат базасы маалыматты ишенимдүү сактап, аны натыйжалуу сурап алууга мүмкүнчүлүк берет. MongoDB — бул маалыматты JSON сымал документтер катары сактаган популярдуу документтик база, ал эми Mongoose — бул документтерге түзүм, текшерүү жана ыңгайлуу API берген Node китепканасы.
Сабактын аягында сиз төмөнкүлөрдү жасай аласыз:
  • MongoDB'де документ, коллекция жана маалымат базасы деген эмне экенин түшүндүрүү;
  • Node колдонмосун MongoDB'ге туташтыруу жана Mongoose аркылуу схема жана модель аныктоо;
  • төрт CRUD операциясын аткаруу (түзүү, окуу, жаңылоо, өчүрүү);
  • маселеге документтик база качан ылайыктуу, качан реляциялык база жакшыраак экенин баалоо.

1. MongoDB деген эмне? Документтер жана коллекциялар

MongoDB — бул NoSQL документтик база. Туруктуу саптары жана мамычалары бар таблицалардын ордуна ал документтерди сактайт: ийкемдүү, JSON сымал объекттерди. Байланышкан документтердин тобу — коллекция, ал эми коллекциялардын тобу — маалымат базасы.

Бир колдонуучунун документи мындай көрүнүшү мүмкүн:

{
  "_id": "6512a3f0c1e4b2a9d8f00a12",
  "name": "Sara",
  "email": "sara@example.com",
  "age": 24,
  "hobbies": ["chess", "guitar"]
}

Документ массивди (hobbies) түз эле өз ичине камтыганына көңүл буруңуз. Реляциялык базада бул үчүн адатта экинчи таблица керек; MongoDB'де бул жөн гана талаа. Ар бир документ автоматтык түрдө _id талаасын алат — MongoDB сиз үчүн түзгөн уникалдуу идентификатор (бул ObjectId).

Салыштыруу. Реляциялык (SQL) базаны катуу таблица катары элестетиңиз: ар бир сап так ошол эле мамычаларды, ошол эле тартипте камтышы керек. Документтик база көбүрөөк карточкалар салынган кутуга окшош: ар бир карточка өз алдынча, тизмелерди жана ички жазууларды алып жүрө алат, эки карточка бирдей көрүнүшү милдеттүү эмес. Мындай ийкемдүүлүк күчтүү, бирок ал сиз карточкалардын шайкештигине жооп бересиз дегенди билдирет.

Database: shopDB Collection: users { _id: ..., name: "Sara",   age: 24,   hobbies: ["chess","guitar"] } бир документ { _id: ..., name: "Alex",   email: "alex@ex.com" } башка форма да уруксат Collection: orders { _id: ..., total: 42,   items: 3, paid: true } { _id: ..., total: 9,   items: 1, paid: false }
Маалымат базасы коллекцияларды камтыйт; коллекция документтерди камтыйт; ар бир документ өз алдынча JSON сымал объект.

Бул сабакты YourAIZone платформасында улантыңыз

Толук сабакта — толук түшүндүрмө, чыгарылган мисалдар, көп кездешкен каталар, заматта текшерилүүчү тесттер жана ЖИ-репетитор. Конок катары дароо баштаңыз же прогрессти сактоо үчүн аккаунт түзүңүз.

Толук сабакта

  • Толук түшүндүрмө
  • Чыгарылган мисалдар
  • Көп кездешкен каталар жана алардан кантип качуу керек
  • Тест суроолору: 15
  • Тема боюнча суроолорго жооп берген ЖИ-репетитор
  • Окуучу, ата-эне жана мугалим үчүн прогрессти көзөмөлдөө