MongoDB explain plan visualizer & analyzer
Paste or upload an explain("executionStats") result and get a visual plan tree with evidence-backed performance findings.
Paste or upload
Drop in your explain("executionStats") output — any modern MongoDB version.
Instant analysis
The plan is parsed and analyzed entirely in your browser. Nothing leaves your device.
Read the findings
Visual plan tree, key metrics, and evidence-backed findings — each with exact numbers and investigation guidance.
Common questions
Is my data sent anywhere?▼
No. Parsing and analysis run entirely in your browser using JavaScript. Your plan data is never transmitted to any server. Our advertising partners may collect standard browsing data (page views, ad interactions) per their own privacy policies — but your MongoDB plan is never part of that.
What is a COLLSCAN and why is it a problem?▼
A COLLSCAN (collection scan) means MongoDB reads every document in the collection to satisfy the query — there is no index to narrow the search. On small collections this is fine, but at scale it means query time grows linearly with collection size. See how to read executionStats to interpret the numbers.
What is an IXSCAN?▼
An IXSCAN (index scan) means MongoDB is using an index to locate matching documents. This is generally efficient, but efficiency depends on how selective the index is. A high keys-examined/returned ratio may indicate a poorly selective index — see IXSCAN and compound index scans for a before/after example.
What does the docs examined / returned ratio mean?▼
This ratio measures how many documents MongoDB had to read to return each result. A ratio of 1:1 is ideal. A ratio of 1000:1 means MongoDB read 1000 documents to return 1. High ratios often point to missing or poorly selective indexes. See reading executionStats for interpretation guidance.
What is a covered query?▼
A covered query is satisfied entirely from index data without loading full documents from disk. totalDocsExamined: 0 is the signal — the analyzer flags this as a positive finding. See covered queries: examples and explain plans.
Which MongoDB versions are supported?▼
The tool handles explain output from MongoDB 4.x through 7.x. Classic and SBE (Slot-Based Execution) engine output are both recognised. Sharded cluster explains are partially supported — the tool flags the shape and shows raw JSON.
Why does execution time vary between runs?▼
executionTimeMillis reflects the time of that specific explain run, which is affected by caching, server load, and working set. It is useful for relative comparison but should not be treated as a production latency guarantee.
How do I get an explain result?▼
Run db.collection.find({ field: value }).explain("executionStats") in the MongoDB shell, or db.collection.explain("executionStats").aggregate([...]) for aggregation pipelines. Copy the entire JSON output including the outer braces and paste it here.