Du kan bruge $where
:
db.myCollection.find( { $where: "this.a1.a != this.a2.a" } )
Vær dog opmærksom på, at dette ikke vil være særlig hurtigt, fordi det bliver nødt til at skrue java script-motoren op og gentage hvert eneste dokument og kontrollere tilstanden for hvert dokument.
Hvis du har brug for at udføre denne forespørgsel for store samlinger, eller meget ofte, er det bedst at introducere et denormaliseret flag, såsom areEqual
. Alligevel giver sådanne felter med lav selektivitet ikke god indeksydelse, fordi kandidatsættet stadig er stort.