Sử dụng $setIsSubset để kiểm tra một mảng có phải subset của mảng khác. Tạo collection:
> db.subsetDemo.insertOne({"StudentName":"Chris","StudentFavouriteSubject":["Java","Python"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e063e49150ee0e76c06a052") }
> db.subsetDemo.insertOne({"StudentName":"Chris","StudentFavouriteSubject":["Java","Python","MySQL"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e063e4f150ee0e76c06a053") }
Hiển thị tài liệu:
> db.subsetDemo.find().pretty();
Aggregation kiểm tra ["MySQL"] có phải subset của StudentFavouriteSubject:
> db.subsetDemo.aggregate([ { "$project": { "_id": 0, "StudentName": 1, "isMySQL": { "$setIsSubset": [ ["MySQL"], "$StudentFavouriteSubject" ] } }} ]);Kết quả - true nếu mảng chứa "MySQL":
{ "StudentName" : "Chris", "isMySQL" : false } { "StudentName" : "Chris", "isMySQL" : true }Giải thích:
$setIsSubsettrả về true nếu mảng thứ 1 là tập con của mảng thứ 2 (tất cả phần tử mảng 1 có trong mảng 2). Thứ tự không quan trọng, trùng lặp được bỏ qua.