sql >> Base de Datos >  >> NoSQL >> MongoDB

Consulta Mongodb con campos en los mismos documentos.

Podrías usar $where :

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

Sin embargo, tenga en cuenta que esto no será muy rápido, ya que tendrá que activar el motor de secuencias de comandos Java e iterar todos y cada uno de los documentos y verificar la condición de cada uno.

Si necesita realizar esta consulta para colecciones grandes, o con mucha frecuencia, es mejor introducir un indicador desnormalizado, como areEqual . Aun así, estos campos de baja selectividad no generan un buen rendimiento del índice, porque el conjunto de candidatos sigue siendo grande.