Mongodb Driver va Mongoose

Sattoraliyev Iqboljon
2 min readFeb 7, 2025

--

MongoDB — NoSQL turidagi, hujjatga asoslangan (document-oriented) ma’lumotlar bazasi bo’lib, u o’zining tezligi, moslashuvchanligi va kengaytiriluvchanligi bilan mashhur. Node.js ekotizimida MongoDB bilan ishlash uchun ikkita asosiy kutubxona mavjud: MongoDB Driver va Mongoose. Ushbu maqolada ularning farqlari, afzalliklari va qaysi holatlarda qaysi biri tanlanishi haqida tushuncha beramiz.

MongoDB Driver — bu rasmiy kutubxona bo’lib, u MongoDB serveri bilan bevosita bog’lanish va ma’lumotlarni o’qish, yozish, yangilash yoki o’chirish uchun ishlatiladi.

Afzalliklari:

Engil va tezkor — Minimal qavatli bo’lgani uchun Mongoose’ga qaraganda tezroq ishlaydi.
To’liq nazorat — Natijalarni qanday olish va qayta ishlash ustidan to’liq nazorat mavjud.
Kamroq bog’liqlik — Faqat kerakli funksiyalarni ishlatish mumkin, ortiqcha kod yoki xususiyatlardan qochish mumkin.

Kamchiliklari:

Qo’lda model yaratish — Mongoose’dagi kabi avtomatik model va sxemalar yo’q, barchasini qo’lda yaratish kerak.
Validatsiya yo’q — Kiritilayotgan ma’lumotlar avtomatik tekshirilmaydi.

MongoDB Driver misoli:

import { MongoClient } from "mongodb";
const uri = "mongodb://localhost:27017";async function run() { // Ma'lumot qo'shish console.log("Foydalanuvchi qo'shildi!");
const client = new MongoClient(uri);
try {
const newUser = { name: "Ali", age: 25 };
} finally {
await client.close();
}
}
await collection.insertOne(newUser);
await client.connect();
const database = client.db("mydb");
const collection = database.collection("users"); run().catch(console.error);

Mongoose — bu MongoDB uchun ORM (Object Data Modeling) kutubxonasi bo’lib, u model va sxema yaratish imkoniyatini beradi. Bu ma’lumotlarning yaxlitligini saqlash, validatsiya qilish va oson ishlash uchun juda foydali vositadir.

Afzalliklari:

Sxema asosidagi yondashuv — Har bir hujjat uchun aniq struktura va validatsiya qoidalarini belgilash mumkin.
Oson foydalanish — ORM sifatida ishlaydi, bu esa ma’lumotlar bilan ishlashni soddalashtiradi.
Avtomatik validatsiya — Malumotlar kiritilganda, sxemaga mos kelishini tekshiradi.
Query helperlar — Ma’lumotlarni qidirish, yangilash va o’chirishni osonlashtiradigan metodlar mavjud.

Kamchiliklari:

Yuqori qavatlilik — MongoDB Driver’ga qaraganda sekinroq ishlashi mumkin.
Moslashuvchanlik kamroq — Ba’zi hollarda MongoDB Driver’dan foydalangandek moslashuvchanlik bo’lmaydi.

Mongoose misoli:

import mongoose from "mongoose";
mongoose.connect("mongodb://localhost:27017/mydb"); const userSchema = new mongoose.Schema({async function createUser() {
name: { type: String, required: true },
age: { type: Number, required: true },
}); const User = mongoose.model("User", userSchema);
const user = new User({ name: "Ali", age: 25 });
await user.save();
console.log("Foydalanuvchi yaratildi!");
} createUser().catch(console.error);

Xususiyat MongoDB Driver Mongoose Tezlik ✅ Tezroq ❌ Sekinroq Moslashuvchanlik ✅ Yuqori ❌ Cheklangan Sxema va model ❌ Yo’q ✅ Bor Validatsiya ❌ Yo’q ✅ Bor O’rganish osonligi ❌ Murakkabroq ✅ Osonroq Kod uzunligi ❌ Ko’proq yozish kerak ✅ Kamroq kod bilan ishlaydi

  • Agar soddalik va tezlik muhim bo’lsa — MongoDB Driver.
  • Agar katta loyihalar, validatsiya va sxemalar bilan ishlash kerak bo’lsa — Mongoose.
  • Agar MongoDB Driver ishlatib, validatsiya va sxema tizimini saqlamoqchi bo’lsangiz, TypeScript bilan Typegoose ishlatish mumkin.

Sizning loyiha talablaringizga qarab, eng to’g’ri variantni tanlashingiz mumkin!

Originally published at https://medium.com on February 7, 2025.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response