Saltar al contenido
Totalmente local

JSON a esquema Mongoose

Convierte un ejemplo JSON en un esquema y modelo Mongoose listos para usar.

Entrada
Salida

JSON a esquema Mongoose

Pega un documento JSON de ejemplo — un objeto único o una matriz de ellos — y esta herramienta infiere la estructura y genera una definición trabajando mongoose.Schema() con una exportación de modelo. Está diseñada para el momento en que tienes un payload JSON de una API, un archivo de inicialización o un volcado de base de datos antiguo y necesitas un modelo Mongoose, sin escribir cada campo manualmente.

La herramienta lee valores reales para elegir tipos reales: las cadenas se convierten en String, los números en Number, una cadena de fecha con formato ISO se convierte en Date, y un campo cuyo nombre termina en "Id" (o la forma de matriz "…Ids") se convierte en una referencia ObjectId, ya que así es como lo modelaría un esquema escrito a mano. Los objetos anidados se convierten en su propio nuevo mongoose.Schema({...}) dentro del padre, y una matriz de objetos se convierte en una matriz de ese esquema anidado. Las opciones manejan el resto: nombra el modelo, marca los campos escalares como requeridos, lleva los valores propios de la muestra como predeterminados, alterna la opción de marcas de tiempo, decide si los subdocumentos conservan su propio _id, y cambia los campos con sufijo "Id" entre ObjectId y String simple. Elige la sintaxis de CommonJS o módulo ES, e incluye opcionalmente una interfaz TypeScript coincidente debajo del modelo.

Al proporcionar una matriz de documentos de muestra en lugar de uno, permite que la herramienta note campos presentes solo en algunos de ellos, útil cuando los datos reales no son perfectamente uniformes — estos se convierten en opcionales en la interfaz generada. Los saltos de línea de Windows y Unix se tratan de manera idéntica, y la entrada demasiado grande para procesar cómodamente se reporta en lugar de congelar la pestaña. El recuento debajo de la salida muestra el recuento de campos, el recuento de esquemas anidados y el recuento de caracteres.

Todo se ejecuta localmente en tu navegador: el JSON que pegas, que puede contener registros reales, nunca se sube a ningún sitio. Copia el esquema, descárgalo como .txt o envía la salida de vuelta a la entrada para refinarla.

Preguntas frecuentes

¿Qué tipos detecta?
String, Number, Boolean, Date (de cadenas de fecha con formato ISO), ObjectId (para campos cuyo nombre termina en "Id" o "Ids"), esquemas anidados para objetos, y matrices de cualquiera de estos. Un campo sin un tipo confiable, o uno cuyo tipo difiere entre documentos de muestra, se convierte en mongoose.Schema.Types.Mixed.
¿Puedo pegar más de un documento de muestra?
Sí. Pega una matriz de objetos y la herramienta los fusiona: un campo presente solo en algunos de ellos se trata como opcional en la interfaz TypeScript generada, y un campo cuyo tipo difiere entre documentos se vuelve a Mixed.
¿Qué controla "Incluir _id en subdocumentos"?
Mongoose da a cada subdocumento incrustado su propio _id de forma predeterminada. Desactivar esto añade { _id: false } a cada esquema anidado generado, que es la opción común para subdocumentos que nunca se consultan por su cuenta.
¿Por qué un campo como "userId" se convierte en ObjectId?
Un nombre de campo terminado en "Id" (singular) o "Ids" (una matriz de referencias) es casi siempre una referencia a otro documento, por lo que la herramienta lo representa como mongoose.Schema.Types.ObjectId en lugar de String. Desactiva "Usar ObjectId para campos 'Id'" si prefieres cadenas simples en su lugar.
¿Se carga mi JSON en algún lugar?
No. La generación del esquema se ejecuta completamente en tu navegador — tu JSON, incluyendo cualquier registro real que contenga, nunca abandona tu dispositivo.