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

Sử dụng $match trong aggregation pipeline MongoDB

Lọc document sớm trong pipeline với $match

Stage $match trong aggregation hoạt động giống find(), lọc document trước khi xử lý các stage sau, tối ưu hiệu năng.

Dữ liệu khách hàng

> db.demo358.insertOne({"ClientId": 101, "ClientName": "Chris", "ClientAge": 34});
> db.demo358.insertOne({"ClientId": 102, "ClientName": "David", "ClientAge": 32});
> db.demo358.insertOne({"ClientId": 103, "ClientName": "David", "ClientAge": 35});
> db.demo358.insertOne({"ClientId": 104, "ClientName": "Bob", "ClientAge": 31});
> db.demo358.insertOne({"ClientId": 105, "ClientName": "Chris", "ClientAge": 36});

Đếm số document ClientName="David"

> db.demo358.aggregate([
    { $match: { "ClientName": "David" } },
    { $count: "ClientName" }
]);

Kết quả

{ "ClientName": 2 }

Lợi ích $match sớm:

  • Giảm số document xử lý ở stage sau
  • Có thể dùng index (nếu $match là stage đầu tiên)
  • Cú pháp giống find() hoàn toàn

$count: Stage đếm document, output field name do ta đặt.