MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Requête Mongodb avec des champs dans les mêmes documents

Vous pouvez utiliser $where :

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

Cependant, sachez que cela ne sera pas très rapide, car il faudra faire tourner le moteur de script java et itérer chaque document et vérifier la condition pour chacun.

Si vous devez effectuer cette requête pour de grandes collections, ou très souvent, il est préférable d'introduire un indicateur dénormalisé, comme areEqual . Pourtant, ces champs à faible sélectivité ne donnent pas de bonnes performances d'index, car l'ensemble de candidats est encore grand.