JSON al trasformatore di schema Mongoose — Numio
Deduce una definizione di schema Mongoose da un documento JSON di esempio e la restituisce come JSON. I campi ricevono Stringa, Numero, Booleano, Data, ObjectId o Misto; gli oggetti nidificati diventano percorsi nidificati e matrici di oggetti schemi di documenti secondari.
Scrittura di uno schema per una raccolta MongoDB esistente da un documento copiato da Compass o mongosh.
JSON
Mongoose Schema
Quando usarlo
- Scrittura di uno schema per una raccolta MongoDB esistente da un documento copiato da Compass o mongosh.
- Avvio di un modello Node.js da un payload API di esempio che prevedi di archiviare.
Come si usa
- Incolla un documento come rigoroso JSON o una serie di documenti; scrivere ObjectIds e le date come stringhe semplici anziché ObjectId() o ISODate().
- Controllare i tipi dedotti: le stringhe esadecimali di 24 caratteri diventano ObjectId e le stringhe ISO 8601 come 2024-05-01T08:00:00Z diventano Date.
- Copia il risultato in new mongoose.Schema({...}) e aggiungi tu stesso le opzioni richieste, predefinite, indice e riferimento.
Documento JSON
{
"_id": "64f1c2a9e1b2c3d4e5f60718",
"name": "Ada Lovelace",
"code": "A-1001",
"joinedAt": "2024-05-01T08:00:00Z",
"roles": ["admin", "editor"],
"addresses": [
{ "city": "London", "zip": "NW1" },
{ "city": "Paris", "zip": "75001", "primary": true }
],
"profile": { "bio": "Mathematician", "website": null }
}Schema della mangusta (JSON)
{
"_id": {
"type": "ObjectId"
},
"name": {
"type": "String"
},
"code": {
"type": "String"
},
"joinedAt": {
"type": "Date"
},
"roles": {
"type": [
"String"
]
},
"addresses": {
"type": [
{
"city": {
"type": "String"
},
…Dettagli e limiti
Dedotto nel browser dal generatore stesso del sito; il documento non viene inviato a un server.
Solo le date ISO 8601 (2024-05-01, facoltativamente con ora e offset) vengono digitate Date, quindi i codici come "A-1001" o "12" rimangono String.
Gli array di oggetti diventano uno schema di sottodocumenti costruito da tutti gli elementi, ad esempio "type": [{ "city": ... }]. Gli array vuoti diventano Array e null diventa Mixed.
I campi obbligatori, i valori predefiniti, gli indici e i riferimenti non possono essere dedotti dai dati e i campi assenti dal campione non sono presenti nello schema.
FAQ
Posso convertire una serie di documenti JSON?
Sì. I documenti vengono uniti, quindi ogni campo che appare in ognuno di essi è nello schema. Un campo digitato diversamente nei documenti diventa Misto.
Perché i tipi sono citati, come "String"?
L'output è JSON, quindi i nomi dei tipi sono stringhe. In JavaScript è possibile utilizzare i costruttori globali String, Number, Boolean e Date e Schema.Types.ObjectId e Schema.Types.Mixed.
Come viene gestito _id?
Come qualsiasi altro campo: una stringa esadecimale di 24 caratteri viene digitata ObjectId. Rimuovi _id se vuoi che Mongoose lo aggiunga automaticamente.