Schema analysis
Sample a collection and get every field, its types, and how often each one appears.
Checked against v1.11.0 Updated
- Sample a configurable number of documents, with presets for the common sizes. Free analyzes up to 500 per run
- Real-time progress with cancellation, listed in the footer under its collection name
- Hierarchical field tree covering nested objects and arrays
- Color-coded type badges for every detected BSON type, with arrays showing element types like array<number|string>
- Per-field occurrence bar. Fields present in 100% of the sample are marked required
- Stats summary: total fields, required, optional, enum count, sample size, and analysis time
- Automatic enum detection with configurable thresholds: max distinct values (default 20) and max ratio (default 0.2)
- Optional numeric enum support, and named field paths you can force to count as enums regardless
- Manual enum editing. Add values, hover a chip to remove it, and edits persist immediately
- Enum values drive autocomplete inside $in, $nin, $eq, $ne, and direct comparisons
- Field search filters the tree by name and auto-expands the parents it needs
- Automatic analysis and sample size are global settings, and each connection can inherit or override them
- Per-connection overrides force automatic analysis on or off and set the sample to 50, 100, or 500 documents
- Collections reached through $lookup.from, $graphLookup.from, $unionWith, $merge.into, or $out are analyzed automatically
- Schema banner at the bottom of the editor generates a missing schema in one click, in the aggregation builder as well as the code editor
- A collection with no documents says it has nothing to analyze, rather than reporting a missing schema
- Copy the full schema as JSON, and results cache across sessions with a relative last-analyzed timestamp