MongoDB query compiled from plain English against the ecommerce sample schema, then verified by running it.
{
"type": "aggregation",
"collection": "orders",
"pipeline": [
{},
{},
{},
{},
{},
{}
]
}
$group — groups by "$customerId" and aggregates totalSpentCents.$sort — orders by totalSpentCents.$limit — caps the result at 5 documents.$lookup — joins the customers collection on _id → _id.$unwind — flattens $customer into one document per element.$project — returns only _id, name, email, totalSpentCents.totalCents stores money as an integer number of cents — divide by 100 before displaying it.$lookup runs *after* $limit, so it only joins customers for the 5 documents that survive — not for the whole collection. Doing the join first is the common mistake, and on a large collection it is dramatically slower for an identical result.$group, totalSpentCents totals $totalCents — one output document per distinct "$customerId".Write this in plain English instead. Mask Databases compiles the sentence above into exactly this query at build time — no AI at runtime, and you can read the output in a diff.
Try it in the playground → No signup, runs in your browser.