MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Consulta Mongodb com campos nos mesmos documentos


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

No entanto, esteja ciente de que isso não será muito rápido, porque terá que girar o mecanismo de script java e iterar cada documento e verificar a condição de cada um.

Se você precisar fazer essa consulta para coleções grandes ou com muita frequência, é melhor introduzir um sinalizador desnormalizado, como areEqual . Ainda assim, esses campos de baixa seletividade não produzem um bom desempenho de índice, porque o conjunto de candidatos ainda é grande.