aghabalaguluzade
aghabalaguluzade verilerle var olan bir mongodb veritabanını mysqle çevirebilir miyiz ?
Hayır. Biri NoSQL biri SQL kullanan RDMBS, iki alakasız veri tabanı.
Çeviremezsiniz.
Neden çevirmeye çalıştığınıza bağlı. Zaten çevirme gibi bir durum varsa en başta yanlış iş için yanlış veri tabanı seçmişsiniz demektir, geçmiş olsun.
MongoDB şemasını önce MySQL içinde tekrar oluşturacaksınız, dokümanları tablo olarak oluşturacaksınız. MongoDB JSON olduğu için bazı alanları MySQL'de ayrı bir tabloya ilişki kurabilmek için dönüştürmeniz gerekebilir, tabi indeksleme vs gerekecektir. Daha sonra verileri MySQL'e şemaya uygun şekilde tek tek aktaracaksınız. Yani kısacası çevirme dediğiniz, yapıyı MySQL içinde baştan oluşturma ve tek tek kayıtları taşıma.
Yapmayı istedim ama projeyi neredeyse baştan yazmak gerektiği için vazgeçtim. Böyle bir şeyi yapmak demek aynı zamanda eğer düzgün bir mimari kurulmamışsa tüm kodun da değişmesi demek. Hatta bazı yerleri direkt baştan yazmanız gerekecektir. Üstelik bazı yerler daha hızlı ya da daha yavaş çalışacak, buna göre de değişiklik yapmanız gerekecek.
MySQL:
INSERT INTO users (name, email) VALUES ('Ahmet Cemil', 'ahmet.cemil@babiali.com');
SELECT id, name, email FROM users;
$users = User::all();
MongoDB
db.users.insertOne({
name: "Ahmet Cemil",
email: "ahmet.cemil@babiali.com"
});
db.users.find({}, {
id: 1,
name: 1,
email: 1
});
$collection = (new MongoDB\Client)
->mydb
->users;
$users = $collection->find();