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, или отправьте вывод обратно на вход для дальнейшего уточнения.