MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Query Mongodb con campi negli stessi documenti

Potresti usare $where :

db.myCollection.find( { $where: "this.a1.a != this.a2.a" } )

Tuttavia, tieni presente che non sarà molto veloce, perché dovrà avviare il motore di script java e ripetere ogni singolo documento e verificarne le condizioni.

Se devi eseguire questa query per raccolte di grandi dimensioni, o molto spesso, è meglio introdurre un flag denormalizzato, come areEqual . Tuttavia, questi campi a bassa selettività non producono una buona performance dell'indice, perché l'insieme di candidati è ancora grande.