Welcome to the new MongoDB Feedback Portal!
{Improvement: "Your idea"}
We’ve upgraded our system to better capture and act on your feedback.
Your feedback is meaningful and helps us build better products.
We’ve upgraded our feedback system to better capture, track, and act on your feedback. Here’s what you need to know:
I built a Visual Query Builder for Compass's query bar and opened it as PR: https://github.com/mongodb-js/compass/pull/8083.
The team declined it as out of scope, with the concern that visual builders "break down with more complex queries."
I'd like to make the case here, because I think the design actually addresses that concern directly, and I'd love to hear from other users whether this would help them.
The pain it solves:
New Compass users — and anyone returning to a collection they don't know — spend real time discovering field names and remembering operator syntax. A sidebar of fields + a typed operator dropdown collapses that loop.
Type mistakes ("42" vs 42, ObjectId as string, dates as strings) are one of the most common reasons a query silently returns nothing. A type-aware builder eliminates that class of bug.
Dragging a value from a document straight into the filter is the gesture people instinctively try the first time they see Compass. Today nothing happens.
Addressing the "complex queries break down" concern
The builder is explicitly a complement to the text editor, not a replacement:
Sync is one-way (visual → text). Power users keep writing JSON exactly as today; the builder never rewrites their query.
It's gated behind a toggle (a funnel icon next to Reset). Off by default. If you don't want it, you never see it.
When the text query contains shapes v1 can't represent ($expr, $where, nested $or, $elemMatch, …), the builder shows an UnrepresentableOverlay with a "Clear & continue" action. It refuses to lie about what it can show. That's the exact failure mode the team is worried about, handled deliberately.
What's in the PR:
Three drop zones: Query, Projection, Sort (the team mentioned interest in surfacing Sort more prominently — this does it).
14 BSON types and 11 operators ($eq, $ne, $gt/$gte/$lt/$lte, $in, $nin, $regex, $exists, $size), with operators filtered by the field's actual type.
Drag-and-drop from the document grid (List and Table views) using HTML5 native DnD with a custom MIME type, so it crosses plugin boundaries cleanly.
Composes with Explain, Export-to-Language, recent queries, favourites, and AI without further plumbing — because it writes through the existing changeField action.
812 lines of tests (reducer flow + round-trip serialization across 18+ cases) and two telemetry events (VisualQueryBuilderOpened, VisualQueryBuilderApplied) wired up so the team would have data on whether anyone actually uses it.
If you'd use this - or specifically, if you've ever wanted to drag a value from a document into the filter, or wanted a Sort UI that's more discoverable than the JSON box - please upvote or comment.
The code is written and tested. The decision is about whether Compass wants it.
PR: https://github.com/mongodb-js/compass/pull/8083