Você pode usar
$where
:db.myCollection.find( { $where: "this.a1.a != this.a2.a" } )
No entanto, esteja ciente de que isso não será muito rápido, porque terá que girar o mecanismo de script java e iterar cada documento e verificar a condição de cada um.
Se você precisar fazer essa consulta para coleções grandes ou com muita frequência, é melhor introduzir um sinalizador desnormalizado, como
areEqual
. Ainda assim, esses campos de baixa seletividade não produzem um bom desempenho de índice, porque o conjunto de candidatos ainda é grande.