Pregunta

Mi doctor tiene un campo de matriz Teclas

CLAVEs1 y Keys2 son dos matrices

Quiero que todos los documentos donde Teclas contiene cualquier valor en llaves1 y cualquier valor en Keys2

¿Fue útil?

Solución

No hay gran manera de representar a esta consulta todavía (a partir de 1.1.2) - si preguntas en la lista o presentar una solicitud de función podemos tratar de conseguir algo cocinado

.

Por ahora la mejor apuesta es probablemente usar un $ en la consulta que hacer la mitad del trabajo:

db.test.find({keys: {$in: Keys1}})

Usted puede hacer esto en combinación con un $ en la que puede hacer la parte Keys2 (pero no se aprovechará de un índice - es por eso que es bueno para hacer lo más posible con la sintaxis de consulta regular). Esto sería algo como esto:

db.test.find({keys: {$in: Keys1}, $where: "for (i in this.keys) { for (j in Keys2) { if (this.keys[i] == Keys2[j]) return true;}} return false;"})

En las versiones más recientes de mongodb 2.6+ usted puede hacer esto por $ y el operador.

db.test.find({$and:[{keys: {$in: Keys1}},{keys: {$in: Keys2}}]})
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top