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

consulta mongodb para hacer coincidir cada elemento en la matriz doc con una condición

No creo que haya ninguna forma de hacer esto todavía, además de iterar manualmente a través de sus documentos y verificar cada valor en la matriz. Eso va a ser bastante lento porque tiene que ejecutar JavaScript en cada documento y no puede aprovechar ningún índice sobre col.values .

Incluso un $donde La consulta de expresión de JavaScript no parece funcionar aquí porque, posiblemente, porque la consulta contiene una devolución de llamada y es demasiado compleja:

db.col.find("this.values.every(function(v) { return (v > 1 && v < 5) })")

Editar: Para algunas consultas, incluida esta, JavaScript $donde expresión necesita una declaración de retorno, así que esto funciona bien:

db.col.find("return this.values.every(function(v) { return (v > 1 && v < 5) })")