MongoDB od verze 3.6 umí expressions, které, pokud jste je chtěli využívat, tak doposud jen přes agregační framework.

$expr vám umožní sestavit dotaz, ve kterém můžete porovnávat pole, klíče toho stjeného dokumentu v prohledávané kolekci, stejně jako $match v agregaci.

Příklad

Dejme tomu, že máme kolekci s následujícími dokumety:

A dejme tomu, že chceme s kolekce získat jen ty dokumenty, kde spent je větší než budget. To zní logicky a jednoduše, ne?

Špatná zpráva, tedy až doposud: bez agregace jen jednoduchým query tohle nejde.

Od verze 3.6 díky $expr ano 😀

Výsledkem pak bude následující pole dokumentů:

Holla!

Zdroj: MongoDB dokumentace