Ir para o conteúdo
Totalmente local

JSON para Mongoose schema

Transforme uma amostra JSON num schema e modelo Mongoose prontos para usar.

Entrada
Saída

JSON para Mongoose schema

Cole uma amostra de documento JSON — um único objeto ou um array deles — e esta ferramenta infere a forma e gera uma definição mongoose.Schema() completa com exportação de modelo. Foi criada para o momento em que você tem uma carga útil JSON de uma API, um ficheiro de seed ou um dump de base de dados antigo e precisa de um modelo Mongoose, sem digitar cada campo à mão.

A ferramenta lê valores reais para escolher tipos reais: strings tornam-se String, números tornam-se Number, uma string de data com aparência ISO torna-se Date, e um campo cujo nome termina em "Id" (ou a forma em array "…Ids") torna-se uma referência ObjectId, uma vez que é assim que um schema escrito à mão o modelaria. Objetos aninhados tornam-se seu próprio novo mongoose.Schema({...}) dentro do progenitor, e um array de objetos torna-se um array desse schema aninhado. As opções tratam o resto: nomeie o modelo, marque campos escalares como obrigatórios, transporte os próprios valores da amostra como predefinições, ative/desative a opção de timestamps, decida se os subdocumentos mantêm seu próprio _id, e alterne campos com sufixo "Id" entre ObjectId e String simples. Escolha sintaxe CommonJS ou ES module, e opcionalmente adicione uma interface TypeScript correspondente abaixo do modelo.

Alimentar um array de documentos de amostra em vez de um permite à ferramenta notar campos presentes em apenas alguns deles, útil quando dados reais não são perfeitamente uniformes — esses tornam-se opcionais na interface gerada. Os finais de linha Windows e Unix são tratados identicamente, e entrada demasiado grande para processar confortavelmente é reportada em vez de congelar a aba. A contagem sob a saída mostra a contagem de campos, a contagem de schemas aninhados e a contagem de caracteres.

Tudo funciona localmente no seu browser — o JSON que cola, que pode conter registos reais, nunca é carregado em nenhum lugar. Quando o schema parecer correto, copie-o, descarregue-o como um ficheiro .txt para colar no seu próprio ficheiro .js ou .ts, ou envie a saída de volta para a entrada para refiná-la ainda mais.

FAQ

Que tipos deteta?
String, Number, Boolean, Date (a partir de strings de data com aparência ISO), ObjectId (para campos cujo nome termina em "Id" ou "Ids"), schemas aninhados para objetos, e arrays de qualquer um desses. Um campo sem tipo confiável, ou um cujo tipo discorda entre documentos de amostra, torna-se mongoose.Schema.Types.Mixed.
Posso colar mais de um documento de amostra?
Sim. Cole um array de objetos e a ferramenta os mescla: um campo presente em apenas alguns deles é tratado como opcional na interface TypeScript gerada, e um campo cujo tipo difere entre documentos volta para Mixed.
O que faz "Incluir _id em subdocumentos"?
Mongoose oferece a cada subdocumento incorporado seu próprio _id por predefinição. Desativar isto adiciona { _id: false } a cada schema aninhado gerado, que é a escolha comum para subdocumentos que nunca são consultados por conta própria.
Por que um campo como "userId" se torna um ObjectId?
Um nome de campo que termina em "Id" (singular) ou "Ids" (um array de referências) é quase sempre uma referência a outro documento, assim a ferramenta a interpreta como mongoose.Schema.Types.ObjectId em vez de String. Desative "Usar ObjectId para campos 'Id'" se preferir strings simples.
O meu JSON é carregado em algum lugar?
Não. A geração de schema funciona inteiramente no seu browser — o seu JSON, incluindo qualquer registo real que contenha, nunca sai do seu dispositivo.