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
Generator Konfigurasi Webpack
Buat webpack.config.js untuk webpack 5 bagi JavaScript biasa, React, atau Vue: TypeScript, Babel, CSS atau Sass, gambar, HtmlWebpackPlugin, server pengembangan, dan baris npm install.
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.
Validator OpenAPI
Tempel dokumen OpenAPI atau Swagger dalam JSON atau YAML dan periksa struktur intinya: bidang versi, objek info, dan paths, dengan galat dan peringatan yang jelas.
Pemformat PHP
Tambahkan baris baru dan indentasi 2 atau 4 spasi ke cuplikan PHP sederhana. Periksa hasilnya: alat ini bukan parser PHP dan tidak menerapkan PSR-12.
Generator Loader CSS
Buat spinner lingkaran CSS murni: atur diameter, ketebalan border, warna dan kecepatan rotasi, lihat pratinjau langsung, lalu salin CSS siap pakai. Tanpa SVG, tanpa JavaScript.
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.
Alat ini tersedia dalam bahasa lain
- Từ SQL sang NoSQL [VI]
- SQL para NoSQL [PT]
- SQL till NoSQL [SV]
- SQL vers NoSQL [FR]
- SQL → NoSQL [KO]
- SQL a NoSQL [ES]
- من SQL إلى NoSQL [AR]
- การแปลง SQL เป็น NoSQL [TH]
- SQL na NoSQL [PL]
- SQL から NoSQL へ [JA]
- SQL naar NoSQL [NL]
- SQL zu NoSQL [DE]
- SQL a NoSQL [IT]
- SQL в NoSQL [RU]
- SQL'den NoSQL'e [TR]
- 从 SQL 到 NoSQL [ZH]
- SQL to NoSQL [EN]