Sử dụng toán tử $all để tìm document chứa toàn bộ phần tử
Toán tử $all tìm các document mà trường mảng chứa tất cả các giá trị được chỉ định, bất kể thứ tự.
Tạo dữ liệu mẫu
> db.demo17.insertOne({"ListOfSubject": ["MySQL", "MongoDB", "Java"]});
> db.demo17.insertOne({"ListOfSubject": ["C", "Python", "Java"]});
> db.demo17.insertOne({"ListOfSubject": ["C++", "MongoDB", "PL/SQL"]});
Truy vấn với $all
Tìm document chứa cả "C++", "PL/SQL" VÀ "MongoDB":
> db.demo17.find({
"ListOfSubject": {
"$all": ["C++", "PL/SQL", "MongoDB"]
}
});
Kết quả
{
"_id": ObjectId("..."),
"ListOfSubject": ["C++", "MongoDB", "PL/SQL"]
}
Đặc điểm: Thứ tự các phần tử trong mảng không quan trọng. Document đầu tiên có "MySQL", "MongoDB", "Java" không khớp vì thiếu "C++" và "PL/SQL".