Skip to content
Monghoul
Free

Autocomplete from your data, in every pipeline stage

Monghoul suggests field names, types and the values your documents hold, from the collections you are connected to. In an aggregation, each stage is offered the fields the stages before it produce, joined fields included.

Download Monghoul
Workspace · The editor completes the values your documents actually hold, not a grammar
An aggregation on orders: $match, a $lookup from customers as customer, $unwind, and a $group whose _id is being typed as $customer. with the list offering $customer._id, country, email, name, tier and the other customer fields
Fig 01 Aggregation builder · Stage 4 is offered the customer fields the $lookup joined

Nested paths, narrowed as you type

Type shipping. and the list holds the fields inside it and nothing else. The values a field holds are offered the same way, so a status is picked rather than spelled.

The autocomplete list open on a nested field path, offering the four child fields of shipping
Fig 02 Query editor · Typing "shipping." offers only the child fields

Build it one stage at a time

The aggregation builder shows each stage as a row with its own Run to here, so you see what a stage returns before you write the next one. The builder and the code round-trip any pipeline the builder can read.

The aggregation builder as an outline of four stages, $match open, $group and $sort collapsed to one line each, and $limit skipped, each row with its own Run to here
Fig 03 Aggregation builder · Each stage a row, each with its own Run to here

Joins without the syntax

On a $lookup stage, a helper form names the collection, the local field, the foreign field and the output, and keeps them in step with the stage code.

The aggregation builder on a $lookup stage, with the Lookup Helper form filled in: from customers, localField customerId, foreignField _id, as customer
Fig 04 Aggregation builder · The $lookup helper names the four fields, and syncs with the code

Also in this part

Where suggestions come from
Field paths, types, operators, stages, accumulators and enum values, taken from the collections you are connected to.
Stages that reshape
$project, $group, $count, $facet, $bucket and $unset replace the fields a later stage is offered. $addFields, $set and $lookup add to them.
Joined collections
$lookup brings in the foreign collection’s fields, nested paths included.
The editor
Monaco over the MongoDB Node driver, with a JavaScript sandbox that has BSON constructors, fetch, crypto, Faker, Luxon, Day.js, Lodash and Zod.

Try it against your own data

38 MB installer. Free forever, and a 14-day Pro trial with no card.

Download Monghoul