Перейти к содержанию
100% локально

JSON в схему Mongoose

Преобразуйте образец JSON в полноценную схему Mongoose с автоматическим определением типов данных и генерацией готового кода модели.

Входные данные
Выходные данные

JSON в схему Mongoose

Вставьте образец JSON-документа — один объект или массив объектов — и инструмент определит структуру и создаст готовое определение mongoose.Schema() с экспортом модели. Он предназначен для момента, когда у вас есть JSON-полезная нагрузка из API, файла семян или старой выгрузки базы данных и нужна модель Mongoose, без ручного ввода каждого поля.

Инструмент читает реальные значения для выбора реальных типов: строки становятся String, числа становятся Number, строка даты в формате ISO становится Date, а поле, имя которого заканчивается на "Id" (или форма массива "…Ids"), становится ссылкой ObjectId, так как именно так это моделируется в написанной вручную схеме. Вложенные объекты становятся собственной новой mongoose.Schema({...}) внутри родителя, а массив объектов становится массивом этой вложенной схемы. Параметры справляются с остальным: назовите модель, отметьте скалярные поля как обязательные, перенесите собственные значения образца как значения по умолчанию, переключайте опцию временных меток, решите, сохраняют ли поддокументы собственный _id, и переключайтесь между полями с суффиксом "Id" между ObjectId и обычной String. Выберите синтаксис CommonJS или ES модуля и при необходимости добавьте соответствующий интерфейс TypeScript ниже модели.

Передача массива примеров документов вместо одного позволяет инструменту заметить поля, присутствующие только в некоторых из них, что полезно, когда реальные данные не совсем однородны — они становятся необязательными в созданном интерфейсе. Окончания строк Windows и Unix обрабатываются одинаково, и слишком большой ввод вместо замораживания вкладки сообщается. Счетчик под выводом показывает количество полей, количество вложенных схем и количество символов.

Все работает локально в вашем браузере — JSON, который вы вставляете, который может содержать реальные записи, никогда не загружается. Когда схема выглядит правильно, скопируйте ее, загрузите как файл .txt для вставки в собственный файл .js или .ts, или отправьте вывод обратно на вход для дальнейшего уточнения.

FAQ

Какие типы она определяет?
String, Number, Boolean, Date (из строк даты в формате ISO), ObjectId (для полей, имя которых заканчивается на "Id" или "Ids"), вложенные схемы для объектов и массивы любых из них. Поле без надежного типа или поле, тип которого отличается между примерами документов, становится mongoose.Schema.Types.Mixed.
Можно ли вставить несколько примеров документов?
Да. Вставьте массив объектов и инструмент их объединяет: поле, присутствующее только в некоторых из них, рассматривается как необязательное в созданном интерфейсе TypeScript, а поле, тип которого отличается между документами, переходит в Mixed.
Что контролирует "Включить _id в поддокументы"?
Mongoose по умолчанию дает каждому встроенному поддокументу свой _id. Отключение этого добавляет { _id: false } к каждой созданной вложенной схеме, что является общим выбором для поддокументов, которые никогда не запрашиваются сами по себе.
Почему поле типа "userId" становится ObjectId?
Имя поля, заканчивающееся на "Id" (единственное число) или "Ids" (массив ссылок), почти всегда является ссылкой на другой документ, поэтому инструмент отображает его как mongoose.Schema.Types.ObjectId вместо String. Отключите "Использовать ObjectId для полей 'Id'" если вы предпочитаете простые строки.
Мой JSON загружается куда-нибудь?
Нет. Создание схемы работает полностью в вашем браузере — ваш JSON, включая любые реальные записи, которые он может содержать, никогда не покидает ваше устройство.