MongoDB スキーマエクスプローラー

ドキュメントやコレクションのサンプルを貼り付けて、フィールドパス、BSON 型、カバレッジを推論する MongoDB スキーマエクスプローラー。

MongoDB ドキュメントはブラウザ内でローカルに解析・分析されます。貼り付けたものはデバイスから離れることも、サーバーにアップロードされることもありません。

開発・運営:Udit Agarwal

このサンプルから TypeScript 型が必要ですか? JSON to TypeScript を試す。

MongoDB エクスプローラー について

この MongoDB スキーマエクスプローラーは、単一の MongoDB ドキュメントまたはドキュメントの配列を JSON として受け取り、根底にあるフィールドスキーマを推論します。Compass、mongosh、アプリケーションログからサンプルを貼り付けると、すべてのドキュメントを走査し、フィールドパスのフラットなリスト(ネストされたオブジェクトやオブジェクト配列の要素を含む)を構築し、それぞれを int、double、string、bool、object、array、null などのゆるい BSON 風の型でラベル付けし、サンプル内の何件のドキュメントが各フィールドを含むかを表示します。コレクションの形を理解したい、任意または不整合なフィールドを見つけたい、スキーマを素早くドキュメント化したいバックエンド開発者、データエンジニア、QA テスターのために作られています。すべてブラウザ内でローカルに動作するため、貼り付けたドキュメントはデバイスから離れることはなく、サーバーには何もアップロードされません。

機能

  • 単一のドキュメントまたはドキュメントの配列を JSON として受け付ける
  • フィールドパスのフラットなリストをアルファベット順に並べて推論
  • 各フィールドを BSON 風の型でラベル付け:int、double、string、bool、object、array、null
  • ネストされたオブジェクトやオブジェクト配列の最初の要素(path[].field)に降りていく
  • 何件のドキュメントが各フィールドを含むかを数え、任意フィールドを見つけられる
  • ドキュメント間で型が異なる場合はフィールドごとに複数の型をマージ(例:int | null)
  • スキーマの先頭にドキュメント数とフィールド数の概要を表示
  • 貼り付けに合わせてライブで動作し、ブラウザ内で完全にオフラインで動く

MongoDB エクスプローラー の使い方

  1. MongoDB ドキュメントまたはドキュメントの配列を JSON として入力欄に貼り付ける。
  2. 右側の推論されたスキーマ表で、フィールドパス、型、カバレッジを読む。
  3. 各フィールドの横にある present/total の数を確認し、任意またはまばらなフィールドを見つける。
  4. ネストされたパスや配列フィールドを展開して深い構造を確認する。
  5. 正規化された JSON をコピーまたはダウンロードしてサンプルを共有する。

例

入力

[
  { "_id": 1, "name": "Ada", "age": 36, "roles": ["admin"] },
  { "_id": 2, "name": "Linus", "active": true, "address": { "city": "Helsinki" } }
]

出力

_id        int        2/2
active     bool       1/2
address    object     1/2
address.city string   1/2
age        int        1/2
name       string     2/2
roles      array      1/2

2 件のドキュメントをフィールドパス、型、フィールドごとのカバレッジに推論したもの。

よくあるエラーとトラブルシューティング

  • 入力が JSON 解析エラーで拒否される。 — サンプルが有効な JSON であることを確認してください。キーと文字列は二重引用符で、末尾カンマはなく、ObjectId() や ISODate() などの mongosh ヘルパーは使わないでください。
  • ObjectId(...)、ISODate(...)、NumberLong(...) をシェルからそのまま貼り付けた。 — エクスプローラーは標準 JSON を解析するため、これらの拡張 JSON コンストラクタをプレーンな JSON 値(例:引用符付きの文字列)に置き換えてから貼り付けてください。
  • ドキュメントまたはドキュメントの配列を求めるメッセージが出る。 — オブジェクトまたはオブジェクトの配列を提供してください。スカラーのむき出しの配列や単一のプリミティブ値には推論するフィールドがありません。
  • オブジェクトの配列が最初の要素のフィールドしか表示しない。 — これは想定どおりです。オブジェクト配列のスキーマは最初の要素(path[])から推論されます。代表的なオブジェクトが先頭に来るようサンプルを並べ替えてください。
  • フィールドが int | double や string | null のように 2 つの型を表示する。 — これはサンプル内のドキュメントがそのフィールドの型で一致していないことを意味します。エラーではなく情報提供です。

よくある質問

MongoDB スキーマエクスプローラーとは何ですか?
MongoDB ドキュメントまたはサンプルのドキュメント配列を JSON として受け取り、スキーマ(すべてのフィールドパス、各々の BSON 風の型、サンプル内の何件のドキュメントがそのフィールドを含むか)を推論するブラウザ内ツールです。
フィールド型はどのように推論しますか?
各値を検査し、ゆるい BSON 風のラベルを割り当てます。整数は int、非整数は double になり、さらに string、bool、object、array、null があります。ドキュメント間で異なる場合は、見たすべての型をパイプで結んで表示します。
ネストされたオブジェクトや配列を扱いますか?
はい。ネストされたオブジェクトは address.city のようなドット区切りのパスを生成し、オブジェクトの配列は path[].field 記法を使って最初の要素を通じて探索されます。
各フィールドの横の数は何を意味しますか?
それはフィールドのカバレッジで、present/total として表示され、貼り付けたサンプル内の何件のドキュメントがそのフィールドを含むかを意味します。total より小さい値は任意またはまばらなフィールドを示します。
mongosh や Compass からの拡張 JSON を貼り付けられますか?
標準 JSON を貼り付けてください。ObjectId()、ISODate()、NumberLong() などのコンストラクタを先にプレーンな値に置き換えてください。さもないと JSON 解析が失敗します。
この MongoDB スキーマエクスプローラーを使うとき、私のデータは安全ですか?
はい。エクスプローラーはすべてブラウザ内で動作するため、貼り付けたドキュメントはデバイスから離れることはなく、サーバーには何もアップロードされません。

関連ツール

コードフォーマッターの他のツール

コードフォーマッターのツールをすべて見る (32) · すべてのツール