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

Tìm document theo nhiều phần tử mảng trong MongoDB ($all)

Sử dụng toán tử $all để tìm document có mảng chứa tất cả các phần tử chỉ định.

Ví dụ minh họa

Tạo collection findByMultipleArrayDemo:

> db.findByMultipleArrayDemo.insertOne({"HoSinhVien": "John", "TenSinhVien": "Smith", "MonHocChuyenNganh": ["Compiler", "Operating System", "Computer Networks"]});
> db.findByMultipleArrayDemo.insertOne({"HoSinhVien": "Carol", "TenSinhVien": "Taylor", "MonHocChuyenNganh": ["MongoDB", "MySQL", "SQL Server"]});
> db.findByMultipleArrayDemo.insertOne({"HoSinhVien": "Bob", "TenSinhVien": "Taylor", "MonHocChuyenNganh": ["MongoDB", "MySQL", "SQL Server"]});
> db.findByMultipleArrayDemo.insertOne({"HoSinhVien": "David", "TenSinhVien": "Johnson", "MonHocChuyenNganh": ["Compiler", "Operating System", "Computer Networks"]});

Tìm sinh viên học CẢ "Compiler" VÀ "Computer Networks"

> db.findByMultipleArrayDemo.find({MonHocChuyenNganh: {$all: ["Compiler", "Computer Networks"]}}).pretty();

Kết quả: John Smith và David Johnson (cả hai có đủ 2 môn). Carol và Bob không có môn Compiler.

Khác với $in: $in = OR (có ít nhất 1), $all = AND (phải có tất cả).

Hiệu năng: $all có thể dùng index trên trường mảng.