SQL till NoSQL
Klistra in en enda SQL-SELECT-sats så skriver konverteraren om den till en likvärdig MongoDB-find()-fråga. Den mappar de valda kolumnerna till en projektion, WHERE-satsen till ett filter, ORDER BY till .sort() och LIMIT till .limit(). Det är en frågeomskrivare för enkla satser, inte ett migreringsverktyg: JOIN, GROUP BY, aggregeringar och underfrågor stöds inte.
Så fungerar konverteringen
-
1
Tolka SELECT:en
Verktyget läser en enda sats på formen `SELECT kolumner FROM tabell [WHERE ...] [ORDER BY ...] [LIMIT n]`.
-
2
Mappa varje sats
Kolumner blir en projektion `{ col: 1 }`, `WHERE` blir ett filter, `ORDER BY` blir `.sort()` och `LIMIT` blir `.limit()`.
-
3
Översätt operatorerna
Jämförelseoperatorer mappas till Mongo-operatorer: `>` till `$gt`, `<` till `$lt`, `>=` till `$gte`, `<=` till `$lte`, `!=` till `$ne`, och `=` till en direkt matchning.
-
4
Kopiera utdatan
Den genererade raden `db.collection.find(...)` är redo att klistra in i mongosh-skalet eller ett driver-anrop.
Ett genomarbetat exempel
SQL:
SELECT name, price FROM products WHERE price > 100 ORDER BY price DESC LIMIT 5;
MongoDB-fråga:
db.products.find({ price: { $gt: 100 } }, { name: 1, price: 1 }).sort({ price: -1 }).limit(5)
Vad konverteraren mappar
| SQL | MongoDB find() |
|---|---|
SELECT a, b |
projektion { a: 1, b: 1 } |
SELECT * |
alla fält (tom projektion) |
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) |
Vad som inte stöds
- JOIN:s. Endast en enda tabell läses. Att kombinera kollektioner kräver
$lookupeller en denormaliserad datamodell, vilket är ett schemabeslut, inte en frågeomskrivning. - GROUP BY och aggregeringar.
COUNT,SUM,AVGochGROUP BYkräver aggregeringspipelinen (db.collection.aggregate([...])), som det här verktyget inte genererar. - Underfrågor, CTE:er och fönsterfunktioner. Tänk om modellen eller dela upp arbetet i steg; de kan inte uttryckas i en
find(). - IN, LIKE och BETWEEN.
WHERE-tolken hanterar endast jämförelseoperatorerna=,>,<,>=,<=,!=och<>. - Blanda AND och OR. En
WHERE-sats behandlas som heltANDeller heltOR; kombinera inte båda i samma sats. - INSERT, UPDATE, DELETE, CREATE TABLE. Endast
SELECTkonverteras.
Om utdatan
Resultatet är alltid en enda rad db.collection.find(filter, projektion), eventuellt följd av .sort() och .limit(). Den riktar sig till MongoDB-skalet och drivrutinerna. Den producerar inga Firestore- eller Elasticsearch-frågor, och den väljer inga index och optimerar inte prestandan. Testa frågan mot dina egna data innan du förlitar dig på den.
Vanliga frågor
Nej. Utdatan är alltid en MongoDB-find()-fråga för mongosh-skalet eller en drivrutin. Det finns inget målval för andra dokumentlager.
Nej. Det kräver MongoDB:s aggregeringspipeline (aggregate([...])), som det här verktyget inte genererar. Det producerar endast find()-frågor med filter, projektion, sortering och gräns.
Nej. Endast en enda FROM-tabell läses. NoSQL-lager föredrar inbäddning eller referenser, så en JOIN innebär oftast en ändring av datamodellen, inte en frågeomskrivning.
Nej. Endast SELECT-satser konverteras. Kollektioner i MongoDB är schemalösa som standard, så det finns ingen tabelldefinition att översätta.
Relaterade verktyg
ASCII-tabellreferens
Full ASCII-tabell från 0 till 127 med decimal-, hex-, oktal- och binärvärden samt notation för numeriska HTML-referenser, inklusive NUL, LF och DEL.
HTML-teckenreferens
En sökbar lista över HTML-entiteter med deras namngivna och numeriska koder samt kopiering med ett klick för specialtecken och symboler.
Referens för kortkommandon
Sök dokumenterade standardkommandon för VS Code, Chrome och Bash med GNU Readline i macOS, Windows och Linux.
CSS-pilgnerator
Skapa lokalt en CSS-pil med riktning, färg, storlek och ramens tjocklek och kopiera sedan regeln.
Generator för platshållarbilder
Skapa en bild på 1–4000 px med egna färger och text, ladda ned PNG eller kopiera webbadress och HTML.
E-postvalidator
Validera en e-postadress: RFC 5322-syntaxkontroll, live-slagning av MX-poster samt detaljer om lokal del, domän och längd. Ingen e-post skickas.
Verktyget finns på andra språk
- Dari SQL ke NoSQL [ID]
- SQL zu NoSQL [DE]
- SQL a NoSQL [ES]
- การแปลง SQL เป็น NoSQL [TH]
- SQL から NoSQL へ [JA]
- SQL na NoSQL [PL]
- من SQL إلى NoSQL [AR]
- SQL vers NoSQL [FR]
- Từ SQL sang NoSQL [VI]
- SQL para NoSQL [PT]
- SQL → NoSQL [KO]
- SQL naar NoSQL [NL]
- SQL to NoSQL [EN]
- SQL a NoSQL [IT]
- SQL в NoSQL [RU]
- SQL'den NoSQL'e [TR]
- 从 SQL 到 NoSQL [ZH]