İçeriğe atla
%100 yerel

SQL MongoDB Sorgusu

SQL SELECT ifadesini MongoDB find() çağrısına veya agregasyon pipeline'ına dönüştürün, filtre, sıralama ve JOIN dönüştürmesi ile.

Giriş
Çıkış

SQL MongoDB Sorgusu

SQL SELECT ifadesini yapıştırın ve bu araç eşdeğer MongoDB sorgusu haline dönüştürür — kabukta çalıştırabileceğiniz mongosh yöntemi çağrısı ya da kendi sürücü kodunuza gömmek için düz JSON sorgu belgesi. WHERE yan tümcesini, ORDER BY, LIMIT ve OFFSET'i okur ve bunları MongoDB filtresine, sıralamasına, limite ve atlamasına dönüştürür; böylece "SELECT id, name FROM users WHERE age > 18 ORDER BY name DESC LIMIT 10" uygun filtre ve sıralama nesneleri içeren çalıştırılabilir bir find() çağrısı haline gelir.

Agregasyonları da anlar. SELECT listesindeki COUNT, SUM, AVG, MIN ve MAX işlevleri GROUP BY ile birleştirildiğinde, bir $group aşaması oluşturur ve ardından gruplandırılmış _id alanlarını orijinal sütun adlarına geri adlandıran bir $project aşaması gelir. JOIN, "JOIN'i $lookup'a çevir" açık olduğunda $lookup ve $unwind aşamasına dönüşür — kapatın ve JOIN yerine neden açıklandığını gösteren bir not görüntülenir. "Sütun adlarını camelCase'e çevir" seçeneği, first_name gibi snake_case sütunları firstName biçimine dönüştürür ve tipik Mongoose adlandırmasıyla eşleşir; girinti ayarlanabilir.

Her SQL yapısının temiz bir MongoDB eşdeğeri yoktur — alt sorgular, UNION, CASE ifadeleri ve HAVING tek bir sorguya veya pipeline'a eşlenmez. Sessizce yanlış bir sorgu üretmek yerine, araç desteklenmeyen yapıyı adlandıran açık bir hata gösterir veya geçici çözüm sunan şeyler için (ek JOIN, düşürülen HAVING, gruplaştırılmamış SELECT sütunu) oluşturulan sorgu üstüne ne değiştiğini açıklayan kısa bir uyarı yorumu ekler.

Her şey tarayıcınızda yerel olarak çalışır: SQL tamamen cihazınızda ayrıştırılıp dönüştürülür ve sorgu veya şema asla cihazı terk etmez. Sonucu kopyalayın, .txt dosyası olarak indirin ya da orijinal sorguyu daha da geliştirmek için girdiye geri gönderin.

FAQ

JOIN'leri destekliyor mu?
Tek bir JOIN, "JOIN'i $lookup'a çevir" açık olduğunda agregasyon pipeline'ında $lookup ve $unwind aşamasına dönüşür. RIGHT JOIN, LEFT JOIN olarak dönüştürülür ve ilkinden sonra gelen ek JOIN'ler göz ardı edildiği belirtilerek işaretlenir.
GROUP BY ve COUNT veya SUM gibi toplama işlevleri ile ne olur?
Her bir işlev için doğru biriktiriciye sahip bir $group aşamasına dönüşür ve ardından orijinal sütun adlarını geri yükleyen bir $project aşaması gelir, tümü bir agregasyon pipeline'ı içinde.
Hangi SQL özellikleri desteklenmiyor?
Alt sorguların, UNION'un ve CASE ifadelerinin doğrudan MongoDB eşdeğeri yoktur ve yanlış bir sorgu yerine net bir hata üretir. HAVING kabul edilir ancak uyarı ile düşürülür, çünkü kendiniz ekleyeceğiniz ikinci bir $match aşamasına ihtiyaç duyar.
mongosh komutu yerine düz JSON sorgusu alabilir miyim?
Evet. "Çıktı biçimi"ni JSON sorgusu olarak değiştirerek kabuk çağrısı yerine kendi kodunuza ayrıştırabileceğiniz veya gömebileceğiniz bir sorgu belgesini (koleksiyon, işlem, filtre vb.) alırsınız.
SQL dosyam bir yere yükleniyor mu?
Hayır. Dönüştürme tamamen tarayıcınızda çalışır — sorgu, tablo adları ve veriler asla cihazı terk etmez.