Můžete použít $where
:
db.myCollection.find( { $where: "this.a1.a != this.a2.a" } )
Uvědomte si však, že to nebude příliš rychlé, protože to bude muset spustit skriptovací stroj Java a iterovat každý dokument a zkontrolovat stav každého z nich.
Pokud potřebujete provést tento dotaz pro velké sbírky nebo velmi často, je nejlepší zavést denormalizovaný příznak, například areEqual
. Přesto taková pole s nízkou selektivitou nepřinášejí dobrý indexový výkon, protože kandidátní sada je stále velká.