Sie könnten $where
verwenden :
db.myCollection.find( { $where: "this.a1.a != this.a2.a" } )
Beachten Sie jedoch, dass dies nicht sehr schnell sein wird, da es die Java-Script-Engine hochfahren und jedes einzelne Dokument iterieren und die Bedingungen für jedes einzelne prüfen muss.
Wenn Sie diese Abfrage für große Sammlungen oder sehr oft durchführen müssen, ist es am besten, ein denormalisiertes Flag wie areEqual
einzuführen . Dennoch liefern solche Felder mit geringer Selektivität keine gute Indexleistung, weil die Kandidatenmenge immer noch groß ist.