Vai al contenuto

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

  1. Incolla un documento come rigoroso JSON o una serie di documenti; scrivere ObjectIds e le date come stringhe semplici anziché ObjectId() o ISODate().
  2. 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.
  3. 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.

Specifiche e riferimenti