Giả sử mô hình của bạn được gọi là Employee
:
Employee.find({ "departments.0": { "$exists": true } },function(err,docs) {
})
Vì $exists
yêu cầu 0
chỉ mục của một mảng có nghĩa là nó có một cái gì đó trong đó.
Điều tương tự cũng áp dụng cho số lượng tối đa:
Employee.find({ "departments.9": { "$exists": true } },function(err,docs) {
})
Vì vậy, cần phải có ít nhất 10 mục nhập trong mảng để khớp.
Thực sự thì bạn nên ghi lại độ dài của mảng và cập nhật bằng $inc
mỗi khi một cái gì đó được thêm vào. Sau đó, bạn có thể làm:
Employee.find({ "departmentsLength": { "$gt": 0 } },function(err,docs) {
})
Trên thuộc tính "DepartmentLength" mà bạn lưu trữ. Thuộc tính đó có thể được lập chỉ mục, điều này làm cho nó hiệu quả hơn nhiều.