Tôi không nghĩ rằng có bất kỳ cách nào để làm điều này, ngoài việc lặp lại thủ công các tài liệu của bạn và kiểm tra từng giá trị trong mảng. Điều đó sẽ khá chậm vì nó phải thực thi JavaScript trên mỗi tài liệu và không thể tận dụng bất kỳ chỉ mục nào trên col.values
.
Even a $ ở đâu
Truy vấn biểu thức JavaScript dường như không hoạt động ở đây bởi vì, có thể do truy vấn chứa một lệnh gọi lại và quá phức tạp:
db.col.find("this.values.every(function(v) { return (v > 1 && v < 5) })")
Chỉnh sửa: Đối với một số truy vấn, bao gồm cả truy vấn này, JavaScript $ ở đâu biểu thức cần một câu lệnh trả về, vì vậy điều này hoạt động tốt:
db.col.find("return this.values.every(function(v) { return (v > 1 && v < 5) })")