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

Lọc document MongoDB khi tất cả khóa tồn tại trong mảng

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".