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

Lấy document khớp điều kiện bên trong mảng MongoDB với $elemMatch

Sử dụng toán tử $elemMatch để tìm document chứa phần tử mảng thỏa mãn nhiều điều kiện cùng lúc.

Tạo collection với document:

> db.getMatchingDocumentDemo.insertOne(
    {
      _id: 1,
      "UserDetails": [ { "UserName": "John", "UserAge": 23 } ]
    }
); { "acknowledged" : true, "insertedId" : 1 }
> db.getMatchingDocumentDemo.insertOne(
    { _id: 2, "UserDetails": [ { "UserName": "Larry", "UserAge": 24 } ] }
); { "acknowledged" : true, "insertedId" : 2 }

Hiển thị tất cả document:

> db.getMatchingDocumentDemo.find().pretty();

Kết quả:

{ "_id" : 1, "UserDetails" : [ { "UserName" : "John", "UserAge" : 23 } ] }
{ "_id" : 2, "UserDetails" : [ { "UserName" : "Larry", "UserAge" : 24 } ] }

Truy vấn tìm document có phần tử trong mảng UserDetails thỏa mãn UserAge = 24:

> db.getMatchingDocumentDemo.find({ UserDetails: { $elemMatch: { UserAge: 24 } } });

Kết quả (chỉ trả về document _id: 2):

{ "_id" : 2, "UserDetails" : [ { "UserName" : "Larry", "UserAge" : 24 } ] }