Vai al contenuto
100% locale

JSON a schema Mongoose

Trasforma un esempio JSON in uno schema e un modello Mongoose pronti all'uso.

Ingresso
Uscita

JSON a schema Mongoose

Incolla un documento JSON di esempio — un singolo oggetto o un array di oggetti — e questo strumento deduce la struttura e genera una definizione mongoose.Schema() funzionante con un'esportazione di modello. È progettato per il momento in cui hai un payload JSON da un'API, un file di seed o un vecchio dump del database e hai bisogno di un modello Mongoose, senza digitare ogni campo manualmente.

Lo strumento legge i valori reali per scegliere tipi reali: le stringhe diventano String, i numeri diventano Number, una stringa di data in formato ISO diventa Date, e un campo il cui nome termina con "Id" (o la forma array "…Ids") diventa un riferimento ObjectId, poiché è così che uno schema scritto a mano lo modellerebbe. Gli oggetti annidati diventano il loro proprio nuovo mongoose.Schema({...}) all'interno del genitore, e un array di oggetti diventa un array di quello schema annidato. Le opzioni gestiscono il resto: denomina il modello, contrassegna i campi scalari come obbligatori, mantieni i valori dell'esempio come valori predefiniti, attiva l'opzione dei timestamp, decidi se i subdocumenti mantengono il loro _id, e cambia i campi con suffisso "Id" tra ObjectId e String semplice. Scegli la sintassi CommonJS o ES module, e opzionalmente aggiungi un'interfaccia TypeScript corrispondente sotto il modello.

Fornendo un array di documenti di esempio invece di uno, lo strumento può notare i campi presenti solo in alcuni di essi, utile quando i dati reali non sono perfettamente uniformi — questi diventano facoltativi nell'interfaccia TypeScript generata. I ritorni a capo di Windows e Unix vengono trattati in modo identico, e l'input troppo grande per essere elaborato comodamente viene segnalato invece di bloccare la scheda. Il totale sotto l'output mostra il numero di campi, il numero di schemi annidati e il numero di caratteri.

Tutto viene eseguito localmente nel tuo browser — il JSON che incolla, che potrebbe contenere record reali, non viene mai caricato da nessuna parte. Quando lo schema ti piace, copialo, scaricalo come file .txt da incollare nel tuo file .js o .ts, oppure rimanda l'output all'input per affinarlo ulteriormente.

FAQ

Quali tipi rileva?
String, Number, Boolean, Date (da stringhe di data in formato ISO), ObjectId (per i campi il cui nome termina con "Id" o "Ids"), schemi annidati per gli oggetti, e array di uno qualsiasi di questi. Un campo senza un tipo affidabile, o uno il cui tipo differisce tra i documenti di esempio, diventa mongoose.Schema.Types.Mixed.
Posso incollare più di un documento di esempio?
Sì. Incolla un array di oggetti e lo strumento li unisce: un campo presente solo in alcuni di essi è trattato come facoltativo nell'interfaccia TypeScript generata, e un campo il cui tipo differisce tra i documenti torna a Mixed.
Cosa controlla "Includi _id nei subdocumenti"?
Mongoose assegna a ogni subdocumento incorporato il suo proprio _id per impostazione predefinita. Disabilitando questo si aggiunge { _id: false } a ogni schema annidato generato, che è la scelta comune per i subdocumenti che non vengono mai interrogati da soli.
Perché un campo come "userId" diventa ObjectId?
Un nome di campo che termina con "Id" (singolare) o "Ids" (un array di riferimenti) è quasi sempre un riferimento a un altro documento, quindi lo strumento lo rappresenta come mongoose.Schema.Types.ObjectId anziché String. Disattiva "Usa ObjectId per i campi 'Id'" se preferisci stringhe semplici.
Il mio JSON viene caricato da qualche parte?
No. La generazione dello schema viene eseguita interamente nel tuo browser — il tuo JSON, incluso qualsiasi record reale che contiene, non lascia mai il tuo dispositivo.