Sobes.tech
Junior

Ma'lumotlar bazalari bilan ishlash uchun qanday asboblar yoki texnologiyalarni ishlatasiz?

sobes.tech AI

AIdan javob

Node.js-da ma'lumotlar bazalari bilan ishlash uchun quyidagi vositalar va texnologiyalardan foydalanaman:

  • ORM/ODM:
    • Sequelize: Relatsion ma'lumotlar bazalari uchun (PostgreSQL, MySQL, SQLite, SQL Server). Ob'ektlarni relatsion jadvallarga xaritalash, tranzaktsiyalar, migratsiyalar va validatsiya uchun kuchli funksiyalar to'plamini taqdim etadi.
    • Mongoose: MongoDB ma'lumotlar bazalari uchun. Ob'ekt-hujjat xaritalash, ma'lumotlar sxemalari, validatsiya, so'rovlar.
  • Ma'lumotlar bazasi mijozlari:
    • pg: PostgreSQL uchun tabiiy mijoz.
    • mysql2: mysql ga nisbatan zamonaviy va tezroq MySQL uchun mijoz.
  • Migratsiya vositalari:
    • sequelize-cli: Relatsion ma'lumotlar bazalari uchun migratsiyalarni boshqarishda ishlatiladi.
    • migrate-mongo: MongoDB uchun migratsiyalarni boshqarish uchun vosita.
  • Ma'lumotlar bazasini boshqarish vositalari (GUI):
    • DBeaver: Turli ma'lumotlar bazasi turlari uchun universal vosita.
    • MongoDB Compass: MongoDB uchun rasmiy GUI.
  • Kesh qilish:
    • Redis: Ko'pincha ma'lumotlar bazasidan ma'lumotlarni kesh qilish uchun ishlatiladi, bu asosiy ma'lumotlar bazasiga yukni kamaytiradi va javoblarni tezlashtiradi.

Sequelize dan foydalanish misoli:

const { Sequelize, DataTypes } = require('sequelize');

// Ma'lumotlar bazasiga ulanish
const sequelize = new Sequelize('database', 'username', 'password', {
  host: 'localhost',
  dialect: 'postgres' // yoki 'mysql', 'sqlite', 'mssql'
});

// Modelni aniqlash
const User = sequelize.define('User', {
  firstName: {
    type: DataTypes.STRING,
    allowNull: false
  },
  lastName: {
    type: DataTypes.STRING
    // allowNull odatda true
  }
}, {
  // Boshqa model sozlamalari
});

// Modelni ma'lumotlar bazasi bilan sinxronlashtirish
async function syncDatabase() {
  await User.sync({ force: true }); // 'force: true' jadvalni o'chirib, qayta yaratadi
  console.log("Ma'lumotlar bazasi sinxronlashtirildi!");
}

// So'rov misoli
async function findUser() {
  const users = await User.findAll();
  console.log(users.map(user => user.toJSON()));
}

// syncDatabase();
// findUser();

Mongoose dan foydalanish misoli:

const mongoose = require('mongoose');

// MongoDB bilan ulanish
mongoose.connect('mongodb://localhost:27017/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true });

// Sxema aniqlash
const userSchema = new mongoose.Schema({
  name: String,
  age: Number
});

// Model yaratish
const User = mongoose.model('User', userSchema);

// Hujjat yaratish misoli
async function createUser() {
  const user = new User({ name: 'Alice', age: 30 });
  await user.save();
  console.log('Foydalanuvchi saqlandi!');
}

// So'rov misoli
async function findUsers() {
  const users = await User.find({ age: { $gte: 25 } });
  console.log(users);
}

// createUser();
// findUsers();

Ma'lum bir vositani tanlash, ma'lumotlar bazasi turiga (relatsion yoki NoSQL), loyiha talablariga va jamoa afzalliklariga bog'liq.