SQL na NoSQL
Wklej pojedyncze zapytanie SQL SELECT, a konwerter przepisze je na równoważne zapytanie find() MongoDB. Mapuje wybrane kolumny na projekcję, klauzulę WHERE na filtr, ORDER BY na .sort() i LIMIT na .limit(). To narzędzie do przepisywania prostych zapytań, a nie narzędzie do migracji: JOIN, GROUP BY, agregacje i podzapytania nie są obsługiwane.
Jak działa konwersja
-
1
Parsowanie SELECT
Narzędzie odczytuje pojedyncze zapytanie w postaci `SELECT kolumny FROM tabela [WHERE ...] [ORDER BY ...] [LIMIT n]`.
-
2
Mapowanie każdej klauzuli
Kolumny stają się projekcją `{ col: 1 }`, `WHERE` staje się filtrem, `ORDER BY` staje się `.sort()`, a `LIMIT` staje się `.limit()`.
-
3
Tłumaczenie operatorów
Operatory porównania są mapowane na operatory Mongo: `>` na `$gt`, `<` na `$lt`, `>=` na `$gte`, `<=` na `$lte`, `!=` na `$ne`, a `=` na bezpośrednie dopasowanie.
-
4
Skopiuj wynik
Wygenerowany wiersz `db.collection.find(...)` jest gotowy do wklejenia w powłoce mongosh lub w wywołaniu sterownika.
Przykład krok po kroku
SQL:
SELECT name, price FROM products WHERE price > 100 ORDER BY price DESC LIMIT 5;
Zapytanie MongoDB:
db.products.find({ price: { $gt: 100 } }, { name: 1, price: 1 }).sort({ price: -1 }).limit(5)
Co mapuje konwerter
| SQL | MongoDB find() |
|---|---|
SELECT a, b |
projekcja { a: 1, b: 1 } |
SELECT * |
wszystkie pola (pusta projekcja) |
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) |
Czego nie obsługuje
- JOIN-y. Odczytywana jest tylko jedna tabela. Łączenie kolekcji wymaga
$lookuplub zdenormalizowanego modelu danych, a to decyzja dotycząca schematu, nie przepisania zapytania. - GROUP BY i agregacje.
COUNT,SUM,AVGiGROUP BYwymagają potoku agregacji (db.collection.aggregate([...])), którego to narzędzie nie generuje. - Podzapytania, CTE i funkcje okienkowe. Przemyśl model lub podziel pracę na etapy; nie da się ich wyrazić w
find(). - IN, LIKE i BETWEEN. Parser
WHEREobsługuje wyłącznie operatory porównania=,>,<,>=,<=,!=i<>. - Mieszanie AND i OR. Klauzula
WHEREjest traktowana jako w całościANDalbo w całościOR; nie łącz obu w jednym zapytaniu. - INSERT, UPDATE, DELETE, CREATE TABLE. Konwertowany jest tylko
SELECT.
O wyniku
Wynik to zawsze pojedynczy wiersz db.collection.find(filtr, projekcja), opcjonalnie zakończony .sort() i .limit(). Jest przeznaczony dla powłoki i sterowników MongoDB. Nie generuje zapytań Firestore ani Elasticsearch, nie dobiera indeksów i nie optymalizuje wydajności. Przetestuj zapytanie na własnych danych, zanim na nim polegniesz.
Najczęściej zadawane pytania
Nie. Wynik to zawsze zapytanie find() MongoDB dla powłoki mongosh lub sterownika. Nie ma wyboru celu dla innych baz dokumentowych.
Nie. To wymaga potoku agregacji MongoDB (aggregate([...])), którego to narzędzie nie generuje. Tworzy tylko zapytania find() z filtrem, projekcją, sortowaniem i limitem.
Nie. Odczytywana jest tylko jedna tabela FROM. Bazy NoSQL preferują osadzanie lub odwołania, więc JOIN zwykle oznacza zmianę modelu danych, a nie przepisanie zapytania.
Nie. Konwertowane są tylko zapytania SELECT. Kolekcje w MongoDB są domyślnie bezschematowe, więc nie ma definicji tabeli do przełożenia.
Powiązane narzędzia
Tabela ASCII
Pełna tabela ASCII od 0 do 127 z zapisem dziesiętnym, szesnastkowym, ósemkowym i binarnym oraz notacją numerycznych odwołań HTML, w tym kodami sterującymi NUL, LF i DEL.
Referencja znaków HTML
Przeszukiwalna lista encji HTML wraz z ich kodami nazwanymi i liczbowymi oraz kopiowaniem jednym kliknięciem specjalnych znaków i symboli.
Skróty klawiaturowe
Wyszukuj udokumentowane skróty domyślne VS Code, Chrome i Bash z GNU Readline w macOS, Windows i Linux.
Formatowanie HTML
Formatuj HTML lokalnie w przeglądarce, używając wcięć dwóch lub czterech spacji. HTML nie jest wysyłany ani walidowany.
Generator EditorConfig
Zbuduj plik .editorconfig z własnych reguł wcięć, końca linii i kodowania, a potem dodaj poprawną sekcję dla każdego języka w repozytorium: Python, Go, YAML, Makefile i więcej.
Formater JavaScript
Formatuj JavaScript, JSX, TypeScript i JSON z konfigurowalnym wcięciem, stylem cudzysłowów, średnikami i przecinkami końcowymi.
Narzędzie jest dostępne w innych językach
- SQL zu NoSQL [DE]
- การแปลง SQL เป็น NoSQL [TH]
- SQL a NoSQL [ES]
- Dari SQL ke NoSQL [ID]
- Từ SQL sang NoSQL [VI]
- من SQL إلى NoSQL [AR]
- SQL para NoSQL [PT]
- SQL から NoSQL へ [JA]
- SQL vers NoSQL [FR]
- SQL → NoSQL [KO]
- SQL till NoSQL [SV]
- SQL naar NoSQL [NL]
- SQL a NoSQL [IT]
- SQL в NoSQL [RU]
- SQL'den NoSQL'e [TR]
- 从 SQL 到 NoSQL [ZH]
- SQL to NoSQL [EN]