MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongodb-Abfrage mit Feldern in denselben Dokumenten

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.