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 --versionMongoDB 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);