Thay thế cho $elemMatch, bạn có thể dùng toán tử $eq để so sánh toàn bộ mảng.
Tạo collection với document:
> db.equalDemo.insertOne({_id: 1, "StudentFriendNames": ["John", "Carol", "Sam"]});
{ "acknowledged" : true, "insertedId" : 1 }
> db.equalDemo.insertOne({_id: 2, "StudentFriendNames": null});
{ "acknowledged" : true, "insertedId" : 2 }
> db.equalDemo.insertOne({_id: 3, "StudentFriendNames": ["Carol"]});
{ "acknowledged" : true, "insertedId" : 3 }
> db.equalDemo.insertOne({_id: 4, "StudentFriendNames": ["Sam"]});
{ "acknowledged" : true, "insertedId" : 4 }
Hiển thị tất cả document:
> db.equalDemo.find();
Kết quả:
{ "_id" : 1, "StudentFriendNames" : [ "John", "Carol", "Sam" ] }
{ "_id" : 2, "StudentFriendNames" : null }
{ "_id" : 3, "StudentFriendNames" : [ "Carol" ] }
{ "_id" : 4, "StudentFriendNames" : [ "Sam" ] }
Truy vấn tìm document có StudentFriendNames chính xác bằng mảng ["Carol"] (dùng $eq):
> db.equalDemo.find({ "StudentFriendNames": { $eq: ["Carol"] } });
Kết quả:
{ "_id" : 3, "StudentFriendNames" : [ "Carol" ] }