Przejdź do treści
100% lokalnie

JSON na schemat Mongoose

Automatycznie wygeneruj schemat Mongoose z twojego przykładu JSON. Wygeneruje model z typami, odniesieniami i konfiguracją.

Wejście
Wynik

JSON na schemat Mongoose

Wklej przykładowy dokument JSON — pojedynczy obiekt lub tablice obiektów — a to narzedzie wnioskuje ksztalt i generuje dzialajacy schemat mongoose.Schema() z eksportem modelu. Jest przeznaczony na moment, gdy masz payload JSON z API, plik startowy lub stary zrzut bazy danych i potrzebujesz modelu Mongoose bez recz­nego pisania kazdego pola.

Narzedzie czyta rzeczywiste wartosci aby wybrac rzeczywiste typy: lancuchy znakow staja sie String, liczby staja sie Number, lancuch wyglądający jak data ISO staje sie Date a pole, ktorego nazwa konczy sie na "Id" (lub forma tablicy "…Ids"), staje sie odniesieniem ObjectId, poniewaz tak by to modelowal reczn­ie napisany schemat. Zagniezdzone obiekty staja sie wlasnymi nowo utworzonymi mongoose.Schema({...}) w schemacie nadrzednym a tablica obiektow staje sie tablica tego zagniezdzonego schematu. Pozostale opcje: nazwij model, oznacz pola skalarne jako wymagane, przeniés wlasne wartosci z przykladu jako domyslne, przélaczaj opcje znaczników czasu, decyduj czy poddokumenty zachowują wlasny _id i przélaczaj pola z przyrostkiem "Id" miedzy ObjectId a zwykly String. Wybierz skladnie CommonJS lub ES module i opcjonalnie dodaj pasujacy interfejs TypeScript poniżej modelu.

Jesli zamiast jednego wkleiszy tablice przykładowych dokumentow, narzedzie zauważy pola obecne tylko w niektórych z nich, co jest przydatne gdy rzeczywiste dane nie sa doskonale jednolite — te staja sie opcjonalne w wygenerowanym interfejsie. Koniec linii Windows i Unix sa traktowane identycznie i wejscie zbyt duze do wygodnego przetworzenia jest zgłaszane zamiast zamarznięcia zaklaki. Liczba poniżej wyjscia pokazuje liczbe pol, liczbe zagniezdonych schematów i liczbe znakow.

Wszystko dziala lokalnie w twojej przeglądarce — JSON, ktory wkleiasz i ktory może zawierac rzeczywiste rekordy, nigdy nigdzie nie jest przesyłany. Gdy schemat wyglada poprawnie, skopiuj go, pobierz jako plik .txt aby wkleisc do wlasnego pliku .js lub .ts, lub wysli wyjscie z powrotem na wejscie i refinuj dalej.

Częste pytania

Jakie typy wykrywa?
String, Number, Boolean, Date (z lancuchow wyglądających jak data ISO), ObjectId (dla pol ktorych nazwy kończą sie na "Id" lub "Ids"), zagniezdzone schematy dla obiektow i tablice ktorychkolwiek z nich. Pole bez wiarygodnego typu lub pole ktorego typ sie rozni miedzy przykladami dokumentow staje sie mongoose.Schema.Types.Mixed.
Czy moge wkleisc wiecej niz jeden przykladowy dokument?
Tak. Wklej tablice obiektow i narzedzie je połączy: pole obecne tylko w niektorych z nich sa w wygenerowanym interfejsie TypeScript uważane za opcjonalne i pole ktorego typ sie rozni miedzy dokumentami wraca sie na Mixed.
Co kontroluje "Zawrzyj _id w poddokumentach"?
Mongoose domyslnie przydzieluje kazdemu zagniezdzonemu poddokumentowi wlasne _id. Wylaczenie jej dodaj { _id: false } do kazdego wygenerowanego zagniezdzonego schematu, co jest czesta wyborem dla poddokumentow ktorzy nigdy nie sa pytani samodzielnie.
Dlaczego pole takie jak "userId" staje sie ObjectId?
Pole ktorego nazwa konczy sie na "Id" (liczba pojedyncza) lub "Ids" (tablica odniesen) jest prawie zawsze odniesieniem do innego dokumentu, wiec narzedzie go renderuje jako mongoose.Schema.Types.ObjectId zamiast String. Wylacz "Uzyj ObjectId dla pol "Id"" jesli chcesz zamiast tego zwykle lancuchy znakow.
Czy moj JSON jest przesyłany gdziekolwiek?
Nie. Generowanie schematu dziala calkowicie w twojej przeglądarce — twoj JSON, łącznie ze wszystkimi rzeczywistymi rekordami ktorymi zawiera, nigdy nie opuszcza twojego urzadzenia.