Để tìm tài liệu có mảng khớp chính xác các phần tử chỉ định, hãy sử dụng find() kết hợp với $all và $size. Toán tử $all chọn tài liệu mà trường mảng chứa tất cả các phần tử chỉ định. $size đảm bảo độ dài mảng chính xác.
Tạo collection:
> db.demo543.insertOne({id:101, subject:["MySQL", "Java" ,"C","Python"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8e1b2f9e5f92834d7f05c9") }
> db.demo543.insertOne({id:102, subject:["MySQL", "MongoDB" ,"SQL Server"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8e1b2f9e5f92834d7f05ca") }
Hiển thị tất cả:
> db.demo543.find();
Kết quả:
{ "_id" : ObjectId("5e8e1b2f9e5f92834d7f05c9"), "id" : 101, "subject" : [ "MySQL", "Java", "C", "Python" ] }
{ "_id" : ObjectId("5e8e1b2f9e5f92834d7f05ca"), "id" : 102, "subject" : [ "MySQL", "MongoDB", "SQL Server" ] }
Truy vấn tìm tài liệu có mảng subject chứa chính xác 3 phần tử: "MySQL", "MongoDB", "SQL Server":
> db.demo543.find({
... "subject": { $all: [ "MySQL", "MongoDB", "SQL Server"], $size: 3 }
... })
Kết quả:
{ "_id" : ObjectId("5e8e1b2f9e5f92834d7f05ca"), "id" : 102, "subject" : [ "MySQL", "MongoDB", "SQL Server" ] }