Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Tìm document MongoDB nơi trường mảng không rỗng

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.