Menu
CoddyTech

MongoDB'ye Bağlanma

Coddy'nin Node.js Journey'sinin MongoDB ile Veritabanları bölümünün bir parçası. Ders 1 / 18.

Bir sunucudaki dizi, sunucu her durduğunda kaybolur. Verileri bir veritabanı saklar. MongoDB, belgeleri depolayan bir veritabanı sunucusudur: JSON benzeri nesneler. Belgeler koleksiyonlarda, koleksiyonlar ise bir veritabanında bulunur.

import { MongoClient } from 'mongodb';

const client = new MongoClient('mongodb://localhost:27017');
const movies = client.db('cinema').collection('movies');

await movies.insertOne({ title: 'Alien', year: 1979 });
const all = await movies.find().toArray();

İstemci, bu adresteki veritabanı sunucusuyla iletişim kurar. insertOne bir belge depolar. find() bir imleç döndürür; bu, sonuçları yalnızca istendiğinde okuyan bir nesnedir. toArray() ise sonuçların tümünü bir diziye okur. Her çağrı veritabanına gider, bu nedenle her biri için await gerekir.

Burada Run, bellekte boş bir MongoDB başlatır ve Data sekmesi koleksiyonlarını gösterir. Başlangıç kodu, belge dizisi alan insertMany ile üç kitap ekler.

challenge icon

Görev

Kolay
  • GET /books ekle: books koleksiyonundaki tüm belgeleri JSON dizisi olarak yanıtlar.

Üç kitabı görmek için Çalıştır'a bas ve Veri sekmesini aç. Ardından GET /books isteğini gönder.

Kendin dene

import express from 'express';
import { MongoClient } from 'mongodb';

const client = new MongoClient('mongodb://localhost:27017');
const db = client.db('shelf');
const books = db.collection('books');

await books.insertMany([
    { title: 'Dune', author: 'Frank Herbert', year: 1965, isbn: '9780441013593', genre: 'scifi' },
    { title: 'Kindred', author: 'Octavia E. Butler', year: 1979, isbn: '9780807083697', genre: 'scifi' },
    { title: 'Emma', author: 'Jane Austen', year: 1815, isbn: '9780141439587', genre: 'classic' },
]);

const app = express();
app.use(express.json());

// Her hata { error: message } biçiminde yanıt verir.
function sendError(res, status, message) {
    res.status(status).json({ error: message });
}

app.get('/', (req, res) => {
    res.send('Bookshelf API');
});

// GET /books isteğini buraya ekleyin.

app.listen(3000, () => {
    console.log('Bookshelf is running on port 3000');
});
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

MongoDB ile Veritabanları bölümündeki tüm dersler