Computer >> Máy Tính >  >> Lập trình >> MongoDB

Tìm kết quả phù hợp chính xác trong mảng mà không cần sử dụng toán tử $ elemMatch trong MongoDB?

Thay vào đó, hãy sử dụng toán tử $ eq. Trước tiên, hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

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

Sau đây là truy vấn để hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find () -

> db.equalDemo.find();

Điều này sẽ tạo ra kết quả sau -

{ "_id" : 1, "StudentFriendNames" : [ "John", "Carol", "Sam" ] }
{ "_id" : 2, "StudentFriendNames" : null }
{ "_id" : 3, "StudentFriendNames" : [ "Carol" ] }
{ "_id" : 4, "StudentFriendNames" : [ "Sam" ] }

Sau đây là truy vấn để lấy kết quả phù hợp chính xác bằng cách sử dụng $ eq -

> db.equalDemo.find({"StudentFriendNames":{$eq:["Carol"]}});

Điều này sẽ tạo ra kết quả sau -

{ "_id" : 3, "StudentFriendNames" : [ "Carol" ] }