Node.js MongoDB Kullanımı

Paylaş

Node.js ile MongoDB kullanımı için gerekli olan modül kurulumu, veritabanı bağlantısı, veri ekleme, sorgulama, güncelleme ve silme ile ilgili bilgiler yer alıyor.

MongoDB kurulum

MongoDB Kurulumu ve MongoDB ile ilgili detaylı bilgi almak için MongoDB Dersleri bölümüne bakabilirsiniz.

Modül kurulumu

Node.js ile MongoDB kullanımı için mongodb modülü kullanılır.

Modül aşağıdaki komutlar kullanılarak indirilir.

npm install mongodb
veya
npm install mongodb --save

Modül proje dahil edilir.

const mongo = require('mongo');

Modül içinde MongoDB işlemleri için çeşitli nesne, metot ve özelliğe sahiptir.

MongoDB bağlantısı

MongoDB bağlantısı için modül içinde yer alan MongoClient nesnesi connect metodu kullanılır.

const MongoClient = require('mongodb').MongoClient;
const URL = 'mongodb://127.0.0.1:27017';

MongoClient.connect(URL)
  .catch(err => {
    throw err;
  }).then(client => {
    console.log('MongoDB bağlantısı başarıyla gerçekleştirildi.');
    client.close();
  });

veya

const MongoClient = require('mongodb').MongoClient;
const URL = 'mongodb://127.0.0.1:27017';

async function main() {
  const client = await MongoClient.connect(URL);
  console.log('MongoDB bağlantısı başarıyla gerçekleştirildi.');
  client.close();
}

main();

Modül MongoDB bağlantısı için çeşitli bağlantı seçeneklerine imkan verir.

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

Veritabanı bağlantısı

MongoDB veritabanı bağlantısı için MongoClient(client) nesnesine ait db metoduna ait geri bildirim fonksiyonu kullanılır.

const MongoClient = require('mongodb').MongoClient;
const URL = 'mongodb://127.0.0.1:27017';

async function main() {
  const client = await MongoClient.connect(URL);
  const db = client.db('VT_ADI');
  console.log('MongoDB bağlantısı başarıyla gerçekleştirildi.');
  client.close();
}

main();

Bağlantı geri dönüş değeri olarak MongoDB işlemlerinde kullanılacak metotların olduğu nesneyi döndürür.

Koleksiyon oluşturma

Koleksiyon oluşturmak için createCollection metodu kullanılır.

const MongoClient = require('mongodb').MongoClient;
const URL = 'mongodb://127.0.0.1:27017';

async function main() {
  const client = await MongoClient.connect(URL);
  const db = client.db('kisi');

  const collection = await db.createCollection('kisiler');
  console.log('Koleksiyon oluşturuldu.');

  client.close();
}

main();

NOT: Koleksiyon oluşturmak için sadece veri eklemek yeterlidir.

Veri ekleme

Veri eklemek için insertOne veya insertMany metodu kullanılır.

const MongoClient = require('mongodb').MongoClient;
const URL = 'mongodb://127.0.0.1:27017';

async function main() {
  const client = await MongoClient.connect(URL);
  const db = client.db('kisi');

  const collection = await db.collection('kisiler');
  let veri = { adi: 'Yusuf', soyadi: 'SEZER' };
  const result = await collection.insertOne(veri);
  console.log('Başarılı bir şekilde eklendi. InsertId: %s', result.insertedId);

  client.close();
}

main();

Birden fazla veri eklemek için insertMany metodu kullanılır.

const MongoClient = require('mongodb').MongoClient;
const URL = 'mongodb://127.0.0.1:27017';

async function main() {
  const client = await MongoClient.connect(URL);
  const db = client.db('kisi');

  const collection = await db.collection('kisiler');
  let veriler = [
    { adi: 'Yusuf', soyadi: 'SEZER' },
    { adi: 'Ramazan', soyadi: 'SEZER' },
    { adi: 'Sinan', soyadi: 'SEZER' },
    { adi: 'Mehmet', soyadi: 'SEZER' }
  ];
  const result = await collection.insertMany(veriler);
  console.log('%d kayıt eklendi.', result.insertedCount);

  client.close();
}

main();

NOT: İşlem sonucu ile ilgili bilgi almak için geri bildirim fonksiyonu kullanılır.

Sorgulama

Sorgulama ve veri çekmek için find veya findOne metodu kullanılır.

const MongoClient = require('mongodb').MongoClient;
const URL = 'mongodb://127.0.0.1:27017';

async function main() {
  const client = await MongoClient.connect(URL);
  const db = client.db('kisi');

  const collection = await db.collection('kisiler');
  let sorgu = {};
  const result = await collection.findOne(sorgu);
  console.log(result);

  client.close();
}

main();

Alınan verilere nokta(.) operatörü ile erişilir.

console.log(result._id);

Birden fazla veri çekmek için find metodu kullanılır.

Metot sorgu ve sorgu ayarlarını nesne olarak alır.

const MongoClient = require('mongodb').MongoClient;
const URL = 'mongodb://127.0.0.1:27017';

async function main() {
  const client = await MongoClient.connect(URL);
  const db = client.db('kisi');

  const collection = await db.collection('kisiler');
  let sorgu = {};
  const result = await collection.find(sorgu, { projection: { _id: 0 } });
  console.log(await result.toArray());

  client.close();
}

main();

Alınan verileri sıralamak için sort metodu kullanılır.

const MongoClient = require('mongodb').MongoClient;
const URL = 'mongodb://127.0.0.1:27017';

async function main() {
  const client = await MongoClient.connect(URL);
  const db = client.db('kisi');

  const collection = await db.collection('kisiler');
  let veriler = {};
  const result = await collection
    .find(veriler, { projection: { _id: 0 } })
    .sort({ adi: -1 });
  console.log(await result.toArray());

  client.close();
}

main();

Sorgu sonucunda belirli verileri almak için limit ve skip metodu kullanılır.

const MongoClient = require('mongodb').MongoClient;
const URL = 'mongodb://127.0.0.1:27017';

async function main() {
  const client = await MongoClient.connect(URL);
  const db = client.db('kisi');

  const collection = await db.collection('kisiler');
  let veriler = {};
  const result = await collection
    .find(veriler, { projection: { _id: 0 } })
    .skip(2)
    .limit(2);
  console.log(await result.toArray());

  client.close();
}

main();

Detaylı bilgi için MongoDB Sorgulama yazısına bakabilirsiniz.

Veri güncelleme

Verileri güncellemek için updateOne veya updateMany metodu kullanılır.

const MongoClient = require('mongodb').MongoClient;
const URL = 'mongodb://127.0.0.1:27017';

async function main() {
  const client = await MongoClient.connect(URL);
  const db = client.db('kisi');

  const collection = await db.collection('kisiler');
  let sorgu = { adi: 'Yusuf Sefa' };
  let yeniDeger = { $set: { adi: 'Yusuf', soyadi: 'SEZER' } };
  const result = await collection.updateOne(sorgu, yeniDeger);
  console.log('%d kayıt güncellendi.', result.modifiedCount);
  client.close();
}

main();

Metot sorgu ve verinin yeni değerini alır.

Veri güncellemesi yapmak için $set anahtar kelimesi kullanılır.

Anahtar kelime kullanılmadığında eşleşen verinin yeni içeriği yeni değer olacaktır.

Birden fazla veri güncellemek için updateMany metodu kullanılır.

const MongoClient = require('mongodb').MongoClient;
const URL = 'mongodb://127.0.0.1:27017';

async function main() {
  const client = await MongoClient.connect(URL);
  const db = client.db('kisi');

  const collection = await db.collection('kisiler');
  let sorgu = {};
  let yeniDeger = { $set: { adi: 'Yusuf', soyadi: 'SEZER' } };
  const result = await collection.updateMany(sorgu, yeniDeger);
  console.log('%d kayıt güncellendi.', result.modifiedCount);
  client.close();
}

main();

Veri silme

Veri silmek için deleteOne veya deleteMany metodu kullanılır.

const MongoClient = require('mongodb').MongoClient;
const URL = 'mongodb://127.0.0.1:27017';

async function main() {
  const client = await MongoClient.connect(URL);
  const db = client.db('kisi');

  const collection = await db.collection('kisiler');
  let sorgu = {};
  const result = await collection.deleteOne(sorgu);
  console.log('%d kayıt silindi.', result.deletedCount);
  client.close();
}

main();

Birden fazla veri silmek için deleteMany metodu kullanılır.

const MongoClient = require('mongodb').MongoClient;
const URL = 'mongodb://127.0.0.1:27017';

async function main() {
  const client = await MongoClient.connect(URL);
  const db = client.db('kisi');

  const collection = await db.collection('kisiler');
  let sorgu = { adi: 'Yusuf' };
  const result = await collection.deleteMany(sorgu);
  console.log('%d kayıt silindi.', result.deletedCount);
  client.close();
}

main();

Koleksiyon silme

Koleksiyon silmek için dropCollection metodu kullanılır.

const MongoClient = require('mongodb').MongoClient;
const URL = 'mongodb://127.0.0.1:27017';

async function main() {
  const client = await MongoClient.connect(URL);
  const db = client.db('kisi');
  const result = await db.dropCollection('kisiler');
  if (result) console.log('Koleksiyon başarıyla silindi.');
  client.close();
}

main();

Koleksiyon silmek için koleksiyona ait drop metodu da kullanılabilir.

Node.js Derslerine buradan ulaşabilirsiniz…

MongoDB Derslerine buradan ulaşabilirsiniz…

Hayırlı günler dilerim.


Bunlarda ilgini çekebilir


LinkedIn grubuna buradan katılın.