Nếu bạn cũng có tài liệu không có khóa, bạn có thể sử dụng:
ME.find({ pictures: { $exists: true, $not: {$size: 0} } })
MongoDB không sử dụng chỉ mục nếu có liên quan đến $ size, vì vậy đây là một giải pháp tốt hơn:
ME.find({ pictures: { $exists: true, $ne: [] } })
Nếu thuộc tính của bạn có thể có các giá trị không hợp lệ (như null
boolean
hoặc những người khác), sau đó bạn thêm một séc bổ sung bằng cách sử dụng $types
như được đề xuất trong câu trả lời này:
Với mongo> =3.2:
ME.find({ pictures: { $exists: true, $type: 'array', $ne: [] } })
Với mongo <3.2:
ME.find({ pictures: { $exists: true, $type: 4, $ne: [] } })
Kể từ bản phát hành MongoDB 2.6, bạn có thể so sánh với toán tử $gt
nhưng có thể dẫn đến kết quả không mong muốn (bạn có thể tìm thấy lời giải thích riêng trong câu trả lời này):
ME.find({ pictures: { $gt: [] } })