Làm cách nào để lọc dữ liệu trong mongodb?

Bạn có thể thêm bộ lọc vào bộ sưu tập để xóa tài liệu mà bạn biết là không liên quan đến truy vấn đến trước khi Stitch đánh giá bất kỳ vai trò nào. Điều này có thể giúp giảm số lượng tính toán mà Stitch cần thực hiện cho một yêu cầu. Các bộ lọc có thể tận dụng các chỉ mục trong cụm MongoDB được liên kết, do đó, việc lọc ra một tài liệu thường nhanh hơn là chờ Stitch đánh giá vai trò của nó

Quy trình đăng ký bộ lọc¶

Khi Stitch nhận được yêu cầu truy vấn, nó sẽ xác định xem có bất kỳ bộ lọc nào được liên kết với bộ sưu tập áp dụng cho yêu cầu hay không và thêm những bộ lọc đó vào truy vấn. Để gán bộ lọc cho truy vấn, Stitch đánh giá Áp dụng khi nào biểu thức JSON mà bạn đã xác định cho mỗi bộ lọc. Nếu Áp dụng khi của bộ lọc có giá trị là

{
  "name": "",
  "apply_when": <JSON Expression>,
  "query": <Query Document>,
  "projection": <Projection Document>
}
3, Stitch sẽ hợp nhất Truy vấn bộ lọc .

Thí dụ

Một bộ sưu tập chứa vài triệu tài liệu và có một vai trò với biểu thức Áp dụng khi sau đây.

sao chép

{ "owner_id": "%%user.id" }

Nếu không có bộ lọc nào được áp dụng, Stitch sẽ đánh giá vai trò cho từng tài liệu phù hợp với truy vấn. Chúng tôi biết rằng Stitch sẽ giữ lại bất kỳ tài liệu nào không có id của người dùng làm giá trị của trường

{
  "name": "",
  "apply_when": <JSON Expression>,
  "query": <Query Document>,
  "projection": <Projection Document>
}
4, vì vậy chúng tôi tiết kiệm thời gian và tài nguyên tính toán bằng cách áp dụng một vị từ truy vấn bổ sung loại trừ các tài liệu đó trước khi Stitch đánh giá bất kỳ vai trò nào

Áp dụng khiTruy vấnDự đoán
{
  "name": "",
  "apply_when": <JSON Expression>,
  "query": <Query Document>,
  "projection": <Projection Document>
}
5
{
  "name": "",
  "apply_when": <JSON Expression>,
  "query": <Query Document>,
  "projection": <Projection Document>
}
6
{
  "name": "",
  "apply_when": <JSON Expression>,
  "query": <Query Document>,
  "projection": <Projection Document>
}
7

Cấu hình bộ lọc truy vấn¶

sao chép

{
  "name": "",
  "apply_when": <JSON Expression>,
  "query": <Query Document>,
  "projection": <Projection Document>
}

Mô tả trường

{
  "name": "",
  "apply_when": <JSON Expression>,
  "query": <Query Document>,
  "projection": <Projection Document>
}
8

Sợi dây

Yêu cầu. Tên của bộ lọc. Tên bộ lọc rất hữu ích để xác định và phân biệt giữa các bộ lọc. Giới hạn từ 100 ký tự trở xuống.
{
  "name": "",
  "apply_when": <JSON Expression>,
  "query": <Query Document>,
  "projection": <Projection Document>
}
0

Bắt buộc. Một biểu thức JSON xác định thời điểm bộ lọc này áp dụng cho một truy vấn nhất định.

Quan trọng

Stitch đánh giá và áp dụng các bộ lọc trước khi nó đọc bất kỳ tài liệu nào, vì vậy bạn không thể sử dụng các bản mở rộng tài liệu MongoDB trong Apply When expression. However, you can use other biến biểu thức khác, chẳng hạn như

{
  "name": "",
  "apply_when": <JSON Expression>,
  "query": <Query Document>,
  "projection": <Projection Document>
}
1,
{
  "name": "",
  "apply_when": <JSON Expression>,
  "query": <Query Document>,
  "projection": <Projection Document>
}
2 và
{
  "name": "",
  "apply_when": <JSON Expression>,
  "query": <Query Document>,
  "projection": <Projection Document>
}
3.

{
  "name": "",
  "apply_when": <JSON Expression>,
  "query": <Query Document>,
  "projection": <Projection Document>
}
4

Tài liệu

Yêu cầu. Bộ lọc truy vấn MongoDB chứa các biến vị ngữ truy vấn bổ sung để hợp nhất vào các truy vấn đến mà bộ lọc áp dụng cho

Thí dụ

Bộ lọc giữ lại các tài liệu có

{
  "name": "",
  "apply_when": <JSON Expression>,
  "query": <Query Document>,
  "projection": <Projection Document>
}
5 bên dưới
{
  "name": "",
  "apply_when": <JSON Expression>,
  "query": <Query Document>,
  "projection": <Projection Document>
}
6 có thể sử dụng truy vấn bộ lọc sau

sao chép

{ "score": { "$gt": 20 } }

{
  "name": "",
  "apply_when": <JSON Expression>,
  "query": <Query Document>,
  "projection": <Projection Document>
}
7

Tài liệu

Yêu cầu. Tài liệu phép chiếu MongoDB chỉ định các phép chiếu trường bổ sung để hợp nhất vào các truy vấn đến mà bộ lọc áp dụng cho

Xung đột phép chiếu

Các phép chiếu MongoDB có thể bao gồm hoặc độc quyền, tôi. e. chúng có thể chỉ trả lại các trường được chỉ định hoặc giữ lại các trường không được chỉ định. Nếu nhiều bộ lọc áp dụng cho một truy vấn, tất cả các bộ lọc phải chỉ định cùng một loại phép chiếu, nếu không truy vấn sẽ không thành công

Thí dụ

Bộ lọc giữ lại trường

{
  "name": "",
  "apply_when": <JSON Expression>,
  "query": <Query Document>,
  "projection": <Projection Document>
}
8 khỏi tất cả các tài liệu có thể sử dụng phép chiếu bộ lọc sau

sao chép

{
  "name": "",
  "apply_when": <JSON Expression>,
  "query": <Query Document>,
  "projection": <Projection Document>
}
2

←   Vai trò truy vấn Lược đồ tài liệu  →

© MongoDB, Inc 2008-nay. MongoDB, Mongo và logo chiếc lá là các nhãn hiệu đã đăng ký của MongoDB, Inc

Bộ lọc hoạt động như thế nào trong MongoDB?

Bộ lọc sửa đổi truy vấn MongoDB sắp đến để chỉ trả về một tập hợp con các kết quả phù hợp với truy vấn . Bộ lọc thêm các tham số truy vấn bổ sung và loại bỏ các trường khỏi kết quả truy vấn trước khi Atlas App Services chạy truy vấn.

Bộ lọc mảng trong MongoDB là gì?

Định nghĩa. bộ lọc $. Chọn một tập hợp con của mảng để trả về dựa trên điều kiện đã chỉ định . Trả về một mảng chỉ có những phần tử phù hợp với điều kiện.