Posted on ::

Php ile mongodb driver kullanarak gerçek zamanlı veritabanı işlemleri nasıl yapılır?

MongoDB Kurulum

MongoDB'yi Ubuntu'ya kurmak için önce resmi GPG anahtarını ve repo'yu ekleyin:

curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

Ardından kurun ve servisi başlatın:

sudo apt update
sudo apt install -y mongodb-org
sudo systemctl start mongod
sudo systemctl enable mongod

Kurulumu doğrulayın:

mongod --version

MongoDB Driver Kurulum

PHP'nin MongoDB ile konuşabilmesi için mongodb PECL extension'ını kurmanız gerekir.

Önce gerekli bağımlılıkları yükleyin:

sudo apt install -y php-pear php-dev libssl-dev

Extension'ı PECL üzerinden kurun:

sudo pecl install mongodb

Kurulum bittikten sonra extension'ı PHP'ye tanıtın:

echo "extension=mongodb.so" | sudo tee /etc/php/$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')/cli/conf.d/20-mongodb.ini

Web sunucusu (Apache/Nginx) kullanıyorsanız servisi yeniden başlatın:

sudo systemctl restart apache2   # Apache için
# veya
sudo systemctl restart php8.x-fpm  # PHP-FPM için

MongoDB Driver kurulu olup olmadığını kontrol edelim:

<?php

if (extension_loaded('MongoDB')) {
    echo 'MongoDB Driver kurulu.';
} else {
    echo 'MongoDB Driver kurulu değil.';
}

Veritabanına Bağlanma

$conn = new MongoDB\Driver\Manager('mongodb://localhost:27017');
// Bağlandığında bir dize döndürecektir.
print_r($conn);

Veri Ekleme (Insert)

Users veritabanına kullanıcı adı utaner ve şifresi deneme olan bir kullanıcı ekleyelim:

$data = new MongoDB\Driver\BulkWrite();

$data->insert([
    'username' => 'utaner',
    'password' => 'deneme',
]);

$response = $conn->executeBulkWrite('deneme.users', $data);
print_r($response);

Veri Çekme (Query)

Kullanıcı adı utaner olan kullanıcıyı veritabanından çekelim:

$query_data = ['username' => 'utaner'];
$query = new MongoDB\Driver\Query($query_data);
$response = $conn->executeQuery('deneme.users', $query);

print_r($response);

Veri Güncelleme (Update)

Kullanıcı adı utaner olan kullanıcının şifresini abc123 yapalım:

$data = new MongoDB\Driver\BulkWrite();
$data->update(['username' => 'utaner'], ['$set' => ['password' => 'abc123']]);

$response = $conn->executeBulkWrite('deneme.users', $data);

Veri Silme (Delete)

Kullanıcı adı utaner olan kullanıcıyı veritabanından silelim:

$data = new MongoDB\Driver\BulkWrite();
$data->delete(['username' => 'utaner']);

$response = $conn->executeBulkWrite('deneme.users', $data);
Table of Contents