Zum Inhalt springen
100% lokal

JSON zu Mongoose-Schema

Konvertieren Sie ein JSON-Muster in ein sofort einsetzbares Mongoose-Schema und -Modell. Keine manuelle Eingabe von Feldern erforderlich.

Eingabe
Ausgabe

JSON zu Mongoose-Schema

Fügen Sie ein JSON-Dokument ein — ein einzelnes Objekt oder ein Array davon — und dieses Tool leitet die Struktur ab und generiert eine funktionsfähige neue mongoose.Schema()-Definition mit einem Modellexport. Es wurde für den Moment entwickelt, in dem Sie eine JSON-Nutzlast von einer API, einer Seed-Datei oder einem alten Datenbankdump haben und ein Mongoose-Modell benötigen, ohne jedes Feld manuell eingeben zu müssen.

Das Tool liest echte Werte, um echte Typen auszuwählen: Strings werden zu String, Zahlen zu Number, ein ISO-ähnlicher Datumstring wird zu Date, und ein Feld, dessen Name mit "Id" (oder der Arrayform "…Ids") endet, wird zu einer ObjectId-Referenz, da dies der Weise entspricht, wie ein handgeschriebenes Schema es modellieren würde. Verschachtelte Objekte werden zu ihrem eigenen neuen mongoose.Schema({...}) im übergeordneten Element, und ein Array von Objekten wird zu einem Array dieses verschachtelten Schemas. Mit Optionen können Sie den Rest steuern: Benennen Sie das Modell, markieren Sie Skalarfelder als erforderlich, übertragen Sie die Werte des Beispiels als Standardverte, schalten Sie die Zeitstempel-Option um, entscheiden Sie, ob Unterdokumente ihre eigene _id behalten, und wechseln Sie "Id"-suffixed-Felder zwischen ObjectId und einfachem String. Wählen Sie CommonJS- oder ES-Modulsyntax und fügen Sie optional ein passendes TypeScript-Interface unterhalb des Modells hinzu.

Durch das Einfügen eines Arrays von Beispieldokumenten anstelle eines einzelnen können Sie Felder bemerken, die nur in einigen vorhanden sind. Dies ist hilfreich, wenn echte Daten nicht perfekt einheitlich sind — diese werden in der generierten Schnittstelle optional. Windows- und Unix-Zeilenenden werden identisch behandelt, und zu großer Input wird gemeldet, statt den Tab einzufrieren. Die Aufzählung unter der Ausgabe zeigt die Feldanzahl, die Anzahl der verschachtelten Schemas und die Zeichenanzahl.

Alles läuft lokal in Ihrem Browser ab — das JSON, das Sie einfügen und das echte Datensätze enthalten kann, wird niemals hochgeladen. Wenn das Schema richtig aussieht, kopieren Sie es, laden Sie es als .txt-Datei herunter, um es in Ihre eigene .js- oder .ts-Datei einzufügen, oder senden Sie die Ausgabe zurück in die Eingabe, um sie weiter zu verfeinern.

Häufige Fragen

Welche Typen werden erkannt?
String, Number, Boolean, Date (aus ISO-ähnlichen Datumstrings), ObjectId (für Felder, deren Name mit "Id" oder "Ids" endet), verschachtelte Schemas für Objekte und Arrays von diesen. Ein Feld ohne zuverlässigen Typ oder dessen Typ zwischen Beispieldokumenten widersprüchlich ist, wird zu mongoose.Schema.Types.Mixed.
Kann ich mehr als ein Beispieldokument einfügen?
Ja. Fügen Sie ein Array von Objekten ein und das Tool führt sie zusammen: Ein Feld, das nur in einigen vorhanden ist, wird im generierten TypeScript-Interface als optional behandelt, und ein Feld, dessen Typ zwischen Dokumenten unterschiedlich ist, fällt auf Mixed zurück.
Was steuert "_id in verschachtelten Dokumenten einschließen"?
Mongoose gibt jedem eingebetteten Unterdokument standardmäßig sein eigenes _id. Das Ausschalten fügt { _id: false } zu jedem generierten verschachtelten Schema hinzu, was die häufige Wahl für Unterdokumente ist, die nie allein abgefragt werden.
Warum wird ein Feld wie "userId" zu einer ObjectId?
Ein Feldname, der mit "Id" (Singular) oder "Ids" (ein Array von Referenzen) endet, ist fast immer eine Referenz auf ein anderes Dokument, also rendert das Tool es als mongoose.Schema.Types.ObjectId anstelle von String. Schalten Sie "ObjectId für 'Id'-Felder verwenden" aus, wenn Sie stattdessen einfache Strings bevorzugen.
Wird mein JSON irgendwohin hochgeladen?
Nein. Die Schemagenerierung läuft vollständig in Ihrem Browser ab — Ihr JSON, einschließlich aller echten Datensätze, die es enthält, verlässt Ihr Gerät nie.