ドキュメントを手動で繰り返し処理し、配列内の各値をチェックする以外に、これを行う方法はまだないと思います。各ドキュメントでJavaScriptを実行する必要があり、col.values
のインデックスを利用できないため、これは非常に遅くなります。 。
でも$ where
JavaScript式クエリは、おそらくクエリにコールバックが含まれていて複雑すぎるため、ここでは機能していないようです。
db.col.find("this.values.every(function(v) { return (v > 1 && v < 5) })")
編集: これを含む一部のクエリでは、JavaScript $ where 式にはreturnステートメントが必要なので、これは正常に機能します:
db.col.find("return this.values.every(function(v) { return (v > 1 && v < 5) })")