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

Truy vấn mảng đối tượng để lấy tài liệu nhúng cụ thể trong MongoDB

Sử dụng $elemMatch trong projection

Toán tử $elemMatch trong phần projection của find() chỉ trả về phần tử đầu tiên trong mảng khớp điều kiện.

Dữ liệu mẫu

> db.demo763.insertOne({
  _id: 1,
  CountryName: "US",
  studentInformation: [
    { StudentName: "Chris" },
    { StudentName: "David", StudentAge: 22 }
  ]
});

Truy vấn: chỉ lấy phần tử có StudentAge tồn tại

db.demo763.find(
  {},
  {
    studentInformation: {
      $elemMatch: {
        StudentAge: { $exists: true }
      }
    }
  }
);

Kết quả

{ "_id": 1, "studentInformation": [{ "StudentName": "David", "StudentAge": 22 }] }

Chỉ phần tử có trường StudentAge được trả về trong mảng studentInformation.