Làm cách nào để lọc một chuỗi trong mongodb?

Toán tử $filter cung cấp một mảng chỉ với các phần tử đó theo thứ tự ban đầu phù hợp với điều kiện. Được đề cập dưới đây là cú pháp của $filter

{ $filter . { đầu vào. < array_field > , như. < chuỗi > , cond. < biểu thức > } }

  • lọc. Toán tử bộ lọc $ được sử dụng để cung cấp kết quả đáp ứng các tiêu chí nhất định. Trong MongoDB, chúng tôi đã sử dụng toán tử bộ lọc để lọc kết quả dựa trên tiêu chí mà chúng tôi đã chỉ định trong truy vấn
  • đầu vào. Đây là một biểu thức phân giải mảng. Chúng tôi đã quản lý để chuyển trường mảng làm tham số đầu vào để lọc các bản ghi. Trước khi chúng tôi sử dụng tham số trường đầu vào trong toán tử bộ lọc, chúng tôi phải sử dụng ký hiệu $
  • như. Đó là đối số toán tử bộ lọc không bắt buộc. Đây là tên của trường đã được sử dụng như một phần tử trong mảng đầu vào. Tham số này thuộc loại chuỗi trong toán tử bộ lọc. Sử dụng từ khóa “as”, biểu thức này truy cập từng phần tử trong một mảng đầu vào
  • điều kiện. Tùy chọn này xác định vị trí nên bao gồm giá trị từ mảng được tạo. Tham số này thuộc loại biểu thức trong toán tử bộ lọc. Các giá trị từ bộ sưu tập đã cho được lọc bằng biểu thức. Chúng ta có thể sử dụng nhiều toán tử điều kiện để lọc dữ liệu từ các phần tử mảng

Cách hoạt động của Truy vấn bộ lọc trong MongoDB trong Ubuntu 20. 04

Toán tử bộ lọc $ MongoDB được sử dụng để lọc tài liệu từ một mảng dựa trên một điều kiện mà chúng tôi đã xác định trong truy vấn của mình. Dựa trên điều kiện đã cho, trả về một tập hợp con của một mảng. Chỉ những mục nhập mảng thỏa mãn yêu cầu mới được trả về. Các phần tử được lắp ráp lại theo cùng một cách sắp xếp như trước

Hãy xem xét một số trường hợp để giúp bạn hiểu những gì chúng ta đang thảo luận. Khi chúng tôi tiếp tục bài viết, chúng tôi muốn bạn thử các ví dụ trong trình bao mongo. Chúng tôi bắt đầu bằng cách tạo một bộ sưu tập cơ sở dữ liệu sử dụng trong suốt bài viết

Làm cách nào để lọc một chuỗi trong mongodb?

Làm cách nào để lọc một chuỗi trong mongodb?

Ở đây, chúng tôi đã xác định một bộ sưu tập cơ sở dữ liệu là "ứng cử viên" bằng cách sử dụng trình bao MongoDB. Đối với bộ sưu tập này, chúng tôi đã xác định trường id, tên và nhãn hiệu. Chúng tôi đã chèn bảy tài liệu cùng một lúc bằng cách sử dụng truy vấn insertMany

Làm cách nào để lọc một chuỗi trong mongodb?

Bộ sưu tập “ứng cử viên” đang gọi hàm tìm kiếm như trong truy vấn trên. Sau đó, tài liệu đã ghi sẽ hiển thị trường và các giá trị tương ứng của nó. Lưu ý rằng trong trường “marks”, mảng được xác định với một số giá trị ngẫu nhiên

ví dụ 1. Sử dụng toán tử bộ lọc $ trong MongoDB trong Ubuntu 20. 04

Toán tử $filter được sử dụng để lọc các phần tử mảng trong trường “marks” từ tập hợp đã cho trong ví dụ sau

Làm cách nào để lọc một chuỗi trong mongodb?

Chúng tôi đã sử dụng truy vấn tổng hợp trên bộ sưu tập “ứng cử viên”. Trong truy vấn này, chúng ta có toán tử $match được sử dụng để lọc tài liệu theo id. Chúng tôi đã gán cho trường id một toán tử $in. Toán tử $in tìm các tài liệu trong đó giá trị của id bằng với bất kỳ giá trị nào trong mảng được cung cấp. Sau đó, toán tử $filter được chuyển đối số đầu vào và đặt giá trị của nó là “$marks”. Tham số “as” cũng được sử dụng để trả về tên trường “marks”. Sau đó, chúng tôi đã chỉ định tham số điều kiện sử dụng toán tử lớn hơn trên trường “$$marks”

Bằng cách thực hiện theo truy vấn trên, kết quả chúng tôi nhận được được hiển thị trong hình với tên trường mới được đánh dấu cao

Làm cách nào để lọc một chuỗi trong mongodb?

ví dụ 2. Sử dụng toán tử bộ lọc $ cho một mảng trống trong MongoDB trong Ubuntu 20. 04

Khi một trong các tài liệu bộ sưu tập của chúng tôi có một mảng trống, toán tử bộ lọc trả về một tập hợp mảng trống, như có thể thấy ở đây

Làm cách nào để lọc một chuỗi trong mongodb?

Trong $match, chúng tôi đã chỉ định id có toán tử $in trả về id “7” từ bộ sưu tập như chúng tôi đã cung cấp “7” bên trong một mảng. Sau đó, truy vấn $filter đã cung cấp trường bộ sưu tập “marks” trả về một mảng trống vì không có giá trị nào được lưu trữ bên trong trường “marks” của id “7”

Kết quả của toán tử bộ lọc có một bộ tài liệu trống ở đây

Làm cách nào để lọc một chuỗi trong mongodb?

ví dụ 3. Sử dụng toán tử bộ lọc $ cho loại sai trong MongoDB trong Ubuntu 20. 04

Nếu chúng tôi cố gắng sử dụng $filter trên một trường không có mảng, chúng tôi sẽ gặp lỗi. Sau đây là minh chứng cho tuyên bố này

Làm cách nào để lọc một chuỗi trong mongodb?

Chúng tôi đã cung cấp một trường “tên” từ tài liệu có id là “5” bên trong toán tử bộ lọc $. Trong tham số cond của $filter, chúng ta có toán tử $eq lấy trường “$name” và khớp với giá trị chuỗi được xác định cho nó

Khi chúng tôi chạy truy vấn trên, thông báo lỗi cho biết loại phải là một mảng trong toán tử bộ lọc $ như trong hình

Làm cách nào để lọc một chuỗi trong mongodb?

Ví dụ 4. Sử dụng toán tử bộ lọc $ với biến $this trong MongoDB trong Ubuntu 20. 04

Chúng tôi đã sử dụng tham số “as” để đặt tên cho biến trong các trường hợp trước đó. Tham số as là tùy chọn. Nếu chúng ta để trống trường này, tên biến sẽ mặc định là “this”

Làm cách nào để lọc một chuỗi trong mongodb?

Ở đây, chúng tôi đã chỉ định mảng trong toán tử $in để chọn các trường id từ các tài liệu của bộ sưu tập đã cho trong $match. Sau đó, bộ lọc $ có hai tham số, đầu vào và cond. Tham số cond có toán tử lớn hơn truy xuất các điểm lớn hơn 65. Chúng tôi chưa sử dụng chúng làm tham số, thay vào đó chúng tôi sử dụng tên trường $$this

Do đó, bằng cách sử dụng $$this để tham chiếu trường, chúng tôi đã nhận được kết quả tương tự như từ “as”. Đầu ra thỏa mãn với điều kiện $match và điều kiện $filter nhìn thấy trong hình

Làm cách nào để lọc một chuỗi trong mongodb?

Sự kết luận

Đây là hướng dẫn Bộ lọc MongoDB. Trong bài viết này, chúng ta đã tìm hiểu về định nghĩa, cú pháp và cách thức hoạt động của các bộ lọc trong MongoDB. Các ví dụ và triển khai mã cũng được cung cấp. Các phần tử của trường mảng được lọc bằng toán tử bộ lọc MongoDB. Để lấy dữ liệu từ các phần tử mảng, chúng tôi đã sử dụng một số điều kiện như $gt, $lt, $gte và $lte

Tìm kiếm văn bản MongoDB hoạt động như thế nào?

Việc triển khai công cụ tìm kiếm toàn văn trong MongoDB Atlas chỉ là một câu hỏi về việc nhấp vào nút. Chuyển đến bất kỳ cụm nào và chọn tab “Tìm kiếm” để thực hiện. Từ đó, bạn có thể nhấp vào “Tạo chỉ mục tìm kiếm” để khởi chạy quy trình. Khi chỉ mục được tạo, bạn có thể sử dụng toán tử $search để thực hiện tìm kiếm toàn văn

Chuỗi trong MongoDB là gì?

chuỗi. Một chuỗi thuật ngữ mà MongoDB phân tích cú pháp và sử dụng để truy vấn chỉ mục văn bản . MongoDB thực hiện tìm kiếm logic OR của các điều khoản trừ khi được chỉ định là một cụm từ. Xem Hành vi để biết thêm thông tin về lĩnh vực này.

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

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.