Jeg tror ikke, der er nogen måde at gøre dette på endnu, bortset fra manuelt at gentage dine dokumenter og kontrollere hver værdi i arrayet. Det vil gå ret langsomt, fordi det skal udføre JavaScript på hvert dokument og ikke kan drage fordel af noget indeks over col.values
.
Selv en $hvor
JavaScript-udtryksforespørgsel virker ikke her, fordi, muligvis fordi forespørgslen indeholder et tilbagekald og er for kompleks:
db.col.find("this.values.every(function(v) { return (v > 1 && v < 5) })")
Rediger: For nogle forespørgsler, herunder denne, JavaScript $hvor udtryk har brug for en returerklæring, så dette fungerer fint:
db.col.find("return this.values.every(function(v) { return (v > 1 && v < 5) })")