Dari SQL ke NoSQL
Tempelkan satu pernyataan SQL SELECT dan konverter menulis ulangnya menjadi kueri find() MongoDB yang setara. Ia memetakan kolom yang dipilih menjadi proyeksi, klausa WHERE menjadi filter, ORDER BY menjadi .sort(), dan LIMIT menjadi .limit(). Ini adalah penulis ulang kueri untuk pernyataan sederhana, bukan alat migrasi: JOIN, GROUP BY, agregasi, dan subkueri tidak didukung.
Cara kerja konversi
-
1
Menganalisis SELECT
Alat ini membaca satu pernyataan dalam bentuk `SELECT kolom FROM tabel [WHERE ...] [ORDER BY ...] [LIMIT n]`.
-
2
Memetakan setiap klausa
Kolom menjadi proyeksi `{ col: 1 }`, `WHERE` menjadi filter, `ORDER BY` menjadi `.sort()`, dan `LIMIT` menjadi `.limit()`.
-
3
Menerjemahkan operator
Operator perbandingan dipetakan ke operator Mongo: `>` ke `$gt`, `<` ke `$lt`, `>=` ke `$gte`, `<=` ke `$lte`, `!=` ke `$ne`, dan `=` ke pencocokan langsung.
-
4
Salin hasilnya
Baris `db.collection.find(...)` yang dihasilkan siap ditempelkan ke shell mongosh atau pemanggilan driver.
Contoh terperinci
SQL:
SELECT name, price FROM products WHERE price > 100 ORDER BY price DESC LIMIT 5;
Kueri MongoDB:
db.products.find({ price: { $gt: 100 } }, { name: 1, price: 1 }).sort({ price: -1 }).limit(5)
Apa yang dipetakan konverter
| SQL | MongoDB find() |
|---|---|
SELECT a, b |
proyeksi { a: 1, b: 1 } |
SELECT * |
semua bidang (proyeksi kosong) |
FROM users |
db.users.find(...) |
WHERE a = 5 |
{ a: 5 } |
WHERE a > 5 |
{ a: { $gt: 5 } } |
WHERE a >= 5 |
{ a: { $gte: 5 } } |
WHERE a != 5 |
{ a: { $ne: 5 } } |
WHERE a AND b |
{ a: ..., b: ... } |
WHERE a OR b |
{ $or: [ ... ] } |
ORDER BY a DESC |
.sort({ a: -1 }) |
LIMIT 10 |
.limit(10) |
Apa yang tidak didukung
- JOIN. Hanya satu tabel yang dibaca. Menggabungkan koleksi memerlukan
$lookupatau model data yang didenormalisasi, yang merupakan keputusan skema, bukan penulisan ulang kueri. - GROUP BY dan agregasi.
COUNT,SUM,AVG, danGROUP BYmemerlukan pipeline agregasi (db.collection.aggregate([...])), yang tidak dihasilkan alat ini. - Subkueri, CTE, dan fungsi jendela. Pikirkan kembali modelnya atau bagi pekerjaan menjadi beberapa tahap; keduanya tidak dapat dinyatakan dalam
find(). - IN, LIKE, dan BETWEEN. Pengurai
WHEREhanya menangani operator perbandingan=,>,<,>=,<=,!=, dan<>. - Mencampur AND dan OR. Klausa
WHEREdiperlakukan sepenuhnya sebagaiANDatau sepenuhnyaOR; jangan gabungkan keduanya dalam satu pernyataan. - INSERT, UPDATE, DELETE, CREATE TABLE. Hanya
SELECTyang dikonversi.
Tentang keluaran
Hasilnya selalu satu baris db.collection.find(filter, proyeksi), yang secara opsional diikuti .sort() dan .limit(). Ia ditujukan untuk shell dan driver MongoDB. Ia tidak menghasilkan kueri Firestore atau Elasticsearch, dan tidak memilih indeks atau mengoptimalkan kinerja. Uji kueri dengan data Anda sendiri sebelum mengandalkannya.
Pertanyaan yang Sering Diajukan
Tidak. Keluarannya selalu berupa kueri find() MongoDB untuk shell mongosh atau driver. Tidak ada pemilih target untuk penyimpanan dokumen lain.
Tidak. Hal itu memerlukan pipeline agregasi MongoDB (aggregate([...])) yang tidak dihasilkan alat ini. Alat ini hanya menghasilkan kueri find() dengan filter, proyeksi, pengurutan, dan batas.
Tidak. Hanya satu tabel FROM yang dibaca. Penyimpanan NoSQL lebih menyukai penyematan atau referensi, sehingga JOIN biasanya berarti perubahan model data, bukan penulisan ulang kueri.
Tidak. Hanya pernyataan SELECT yang dikonversi. Koleksi di MongoDB tidak berskema secara bawaan, sehingga tidak ada definisi tabel yang perlu diterjemahkan.
Alat Terkait
Referensi Tabel ASCII
Tabel ASCII lengkap dari 0 sampai 127 dengan desimal, heksadesimal, oktal, biner, dan referensi karakter numerik HTML untuk setiap karakter, termasuk kode kontrol seperti NUL, LF, dan DEL.
Referensi Karakter HTML
Daftar entitas HTML yang dapat dicari, beserta kode bernama dan kode numeriknya, serta fitur salin dengan satu klik untuk karakter khusus dan simbol.
Referensi pintasan papan ketik
Cari pintasan bawaan terdokumentasi untuk VS Code, Chrome, dan Bash dengan GNU Readline di macOS, Windows, dan Linux.
Konverter Ukuran File
Konversi antara byte, KB, MB, GB, TB, dan satuan biner IEC (KiB, MiB, GiB, TiB) dengan kombinasi desimal dan biner apa pun yang Anda inginkan.
Pemformat HTML
Format HTML secara lokal di browser dengan inden dua atau empat spasi. HTML tidak diunggah atau divalidasi.
JSON ke YAML
Konversi JSON ke YAML dengan penjelajaran yang tepat, penutupan string yang aman, skalar blok berbaris ganda, serta kunci yang tersortir untuk konfigurasi yang lebih rapi.
Alat ini tersedia dalam bahasa lain
- SQL → NoSQL [KO]
- SQL vers NoSQL [FR]
- من SQL إلى NoSQL [AR]
- SQL naar NoSQL [NL]
- SQL till NoSQL [SV]
- SQL zu NoSQL [DE]
- SQL から NoSQL へ [JA]
- SQL na NoSQL [PL]
- การแปลง SQL เป็น NoSQL [TH]
- Từ SQL sang NoSQL [VI]
- SQL a NoSQL [ES]
- SQL para NoSQL [PT]
- SQL'den NoSQL'e [TR]
- 从 SQL 到 NoSQL [ZH]
- SQL to NoSQL [EN]
- SQL a NoSQL [IT]
- SQL в NoSQL [RU]