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

Tìm khớp chính xác mảng trong MongoDB không dùng $elemMatch

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" ] }