SQL a NoSQL
Incolla una singola istruzione SQL SELECT e il convertitore la riscrive come una query find() equivalente di MongoDB. Mappa le colonne selezionate su una proiezione, la clausola WHERE su un filtro, ORDER BY su .sort() e LIMIT su .limit(). È un riscrittore di query per istruzioni semplici, non uno strumento di migrazione: JOIN, GROUP BY, aggregazioni e sottoquery non sono supportati.
Come funziona la conversione
-
1
Analizzare il SELECT
Lo strumento legge una singola istruzione della forma `SELECT colonne FROM tabella [WHERE ...] [ORDER BY ...] [LIMIT n]`.
-
2
Mappare ogni clausola
Le colonne diventano una proiezione `{ col: 1 }`, `WHERE` diventa un filtro, `ORDER BY` diventa `.sort()` e `LIMIT` diventa `.limit()`.
-
3
Tradurre gli operatori
Gli operatori di confronto vengono mappati sugli operatori di Mongo: `>` su `$gt`, `<` su `$lt`, `>=` su `$gte`, `<=` su `$lte`, `!=` su `$ne`, e `=` su una corrispondenza diretta.
-
4
Copiare il risultato
La riga `db.collection.find(...)` generata è pronta per essere incollata nella shell mongosh o in una chiamata del driver.
Un esempio pratico
SQL:
SELECT name, price FROM products WHERE price > 100 ORDER BY price DESC LIMIT 5;
Query di MongoDB:
db.products.find({ price: { $gt: 100 } }, { name: 1, price: 1 }).sort({ price: -1 }).limit(5)
Cosa mappa il convertitore
| SQL | MongoDB find() |
|---|---|
SELECT a, b |
proiezione { a: 1, b: 1 } |
SELECT * |
tutti i campi (proiezione vuota) |
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) |
Cosa non è supportato
- JOIN. Viene letta una sola tabella. Combinare le collezioni richiede
$lookupo un modello di dati denormalizzato, che è una decisione di schema, non una riscrittura di query. - GROUP BY e aggregazioni.
COUNT,SUM,AVGeGROUP BYrichiedono la pipeline di aggregazione (db.collection.aggregate([...])), che questo strumento non genera. - Sottoquery, CTE e funzioni di finestra. Ripensa il modello o suddividi il lavoro in fasi; non possono essere espressi in un
find(). - IN, LIKE e BETWEEN. L’analizzatore di
WHEREgestisce solo gli operatori di confronto=,>,<,>=,<=,!=e<>. - Mischiare AND e OR. Una clausola
WHEREviene trattata come tuttaANDo tuttaOR; non combinare entrambi nella stessa istruzione. - INSERT, UPDATE, DELETE, CREATE TABLE. Solo
SELECTviene convertito.
Sul risultato
Il risultato è sempre una singola riga db.collection.find(filtro, proiezione), seguita facoltativamente da .sort() e .limit(). È pensato per la shell e i driver di MongoDB. Non produce query per Firestore o Elasticsearch, e non sceglie indici né ottimizza le prestazioni. Prova la query sui tuoi dati prima di farvi affidamento.
Domande frequenti
No. Il risultato è sempre una query find() di MongoDB per la shell mongosh o un driver. Non c’è un selettore di destinazione per altri archivi di documenti.
No. Questo richiede la pipeline di aggregazione di MongoDB (aggregate([...])), che questo strumento non genera. Produce solo query find() con filtro, proiezione, ordinamento e limite.
No. Viene letta una sola tabella FROM. Gli archivi NoSQL favoriscono l’incorporamento o il riferimento, quindi una join di solito implica una modifica del modello di dati, non una riscrittura della query.
No. Vengono convertite solo le istruzioni SELECT. Le collezioni di MongoDB sono senza schema per impostazione predefinita, quindi non c’è alcuna definizione di tabella da tradurre.
Strumenti correlati
Riferimento Tabella ASCII
Tabella ASCII completa da 0 a 127 con decimale, esadecimale, ottale, binario e riferimento numerico HTML per ogni carattere, inclusi i codici di controllo come NUL, LF e DEL.
Riferimento ai caratteri HTML
Elenco ricercabile delle entità HTML, dei loro codici nominati e numerici, e copia con un clic per caratteri e simboli speciali.
Generatore di lettere casuali
Genera lettere A-Z casuali. Scegli la quantità, usa maiuscole, minuscole o un mix, e applica il risultato a giochi, spunti o attività in classe.
Riferimento scorciatoie da tastiera
Cerca le scorciatoie predefinite documentate di VS Code, Chrome e Bash con GNU Readline su macOS, Windows e Linux.
Creatore di diagrammi di flusso
Crea nel browser diagrammi di flusso visivi con cinque tipi di nodo, connessioni dirette e download SVG o PNG.
Convertitore di dimensioni file
Converti tra byte, KB, MB, GB, TB e le unità binarie IEC (KiB, MiB, GiB, TiB), combinando decimale e binario come preferisci.
Strumento disponibile in altre lingue
- SQL → NoSQL [KO]
- SQL vers NoSQL [FR]
- من SQL إلى NoSQL [AR]
- Dari SQL ke NoSQL [ID]
- 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 в NoSQL [RU]