Sử dụng toán tử $ne (Not Equal) kết hợp với $exists để tìm các document có trường mảng không rỗng.
Ví dụ minh họa
Tạo collection arrayFieldIsNotEmptyDemo:
> db.arrayFieldIsNotEmptyDemo.insertOne({"TenSinhVien": "Larry", "MonHocKyThuat": ["Java", "C"]});
> db.arrayFieldIsNotEmptyDemo.insertOne({"TenSinhVien": "Mike", "MonHocKyThuat": []});
> db.arrayFieldIsNotEmptyDemo.insertOne({"TenSinhVien": "Sam", "MonHocKyThuat": ["MongoDB"]});
> db.arrayFieldIsNotEmptyDemo.insertOne({"TenSinhVien": "Carol", "MonHocKyThuat": []});
> db.arrayFieldIsNotEmptyDemo.insertOne({"TenSinhVien": "David", "MonHocKyThuat": ["MySQL", "SQL Server"]});
Dữ liệu ban đầu có cả mảng rỗng và mảng có phần tử.
Truy vấn tìm mảng không rỗng
> db.arrayFieldIsNotEmptyDemo.find({MonHocKyThuat: {$exists: true, $ne: []}}).pretty();
Kết quả (chỉ trả về document có mảng có phần tử):
{ "_id": ObjectId("..."), "TenSinhVien": "Larry", "MonHocKyThuat": ["Java", "C"] }
{ "_id": ObjectId("..."), "TenSinhVien": "Sam", "MonHocKyThuat": ["MongoDB"] }
{ "_id": ObjectId("..."), "TenSinhVien": "David", "MonHocKyThuat": ["MySQL", "SQL Server"] }
Lưu ý: $exists: true đảm bảo trường tồn tại, $ne: [] loại bỏ mảng rỗng.