Hướng dẫn này sẽ giải thích chi tiết về Biểu thức chính quy trong MongoDB. Chúng ta có thể định nghĩa biểu thức chính quy là tìm một mẫu hoặc từ trong bất kỳ chuỗi nào. Cụm từ thông dụng hữu ích trong hầu hết các loại ngôn ngữ
Hãy xem loạt bài đào tạo MongoDB hoàn chỉnh để hiểu rõ về khái niệm này
Biểu thức chính quy là một chức năng hữu ích của MongoDB. Khi chúng ta nói về MongoDB, nó sử dụng PCRE [biểu thức chính quy tương thích perl] làm biểu thức chính quy. Nó sử dụng toán tử $regex làm biểu thức chính quy để tìm các mẫu trong chuỗi
Ví dụ
Xem xét ví dụ sau trong đó tài liệu được cấu trúc theo bộ sưu tập “softwaretestinghelp”
Hình 1
cú pháp
db.DATA_COLLECTION_NAME.find[{FIELD:{$regex:WORD}}]
Phương pháp 1
Truy vấn
db. trợ giúp kiểm thử phần mềm. tìm [{student_name. {$regex. ”Junaid”}}]
Tìm kiếm truy vấn ở trên là tìm kiếm tất cả các sinh viên có tên “Junaid”
Hình 2. Kết quả trong MongoDB Shell
Hình 3. Kết quả trong Robo3T
Từ ví dụ trên, chúng ta thấy rằng biểu thức chính quy dùng để tìm các mẫu hoặc từ trong một Chuỗi cụ thể
Truy vấn
db.softwaretestinghelp.find[{student_name:/Jun/}].pretty[]
Truy vấn cũng sẽ trả về kết quả tương tự. Bạn có thể xem kết quả bên dưới
hinh 4. Kết quả trong MongoDB Shell
Hình 5. Kết quả trong Robo3T
Bạn sẽ học được gì
- Biểu thức chính quy sẽ hoạt động như thế nào trong trường hợp phân biệt chữ hoa chữ thường?
- Làm cách nào chúng ta có thể sử dụng Biểu thức chính quy trong một mảng?
- Tối ưu hóa biểu thức chính quy
- Phần kết luận
- đề xuất đọc
Biểu thức chính quy sẽ hoạt động như thế nào trong trường hợp phân biệt chữ hoa chữ thường?
Đối với trường hợp phân biệt chữ hoa chữ thường, biểu thức chính quy sử dụng tùy chọn $ và tham số có giá trị là $i. Ở đây chúng tôi đang đưa ra một ví dụ trong đó biểu thức chính quy hoạt động trong tình huống phân biệt chữ hoa chữ thường. Truy vấn sau đây sẽ trả về giá trị có chứa “Junaid” bất kể từ nhỏ hơn hay từ viết hoa
Truy vấn
db.softwaretestinghelp.find[{student_name:{$regex:"junaid",$options:"$i"}}]
Hình 6. Kết quả trong MongoDB Shell
Hình 7. Kết quả trong Robo3T
Làm cách nào chúng ta có thể sử dụng Biểu thức chính quy trong một mảng?
Chúng ta có thể sử dụng khái niệm biểu thức chính quy trong một mảng. Cụm từ thông dụng rất quan trọng khi chúng ta làm việc với các thẻ. Nếu bạn muốn tìm kiếm tất cả các thẻ có “bài đăng mới của tôi” thì truy vấn sau sẽ tìm tất cả các Bài đăng có thẻ “bài đăng mới của tôi” và trả về kết quả cho chúng tôi
Truy vấn
db.softwaretestinghelp.find[{subjects:{$regex:"comp"}}]
Hình 8. Kết quả trong MongoDB Shell
Hình 9. Kết quả trong Robo3T
Tối ưu hóa biểu thức chính quy
- Nếu chúng ta có một tài liệu ở dạng chỉ mục, truy vấn sẽ sử dụng các giá trị của chỉ mục và khớp với biểu thức chính quy
- Nếu biểu thức chính quy là biểu thức tiền tố, thì truy vấn sẽ tìm tất cả các giá trị bắt đầu từ một từ cụ thể
- Ví dụ , nếu một từ bắt đầu từ 'st' thì truy vấn sẽ tìm tất cả các giá trị bắt đầu từ từ st.
Phần kết luận
Tóm lại, chúng tôi đã học được những điểm sau từ hướng dẫn trên
- Biểu thức chính quy và công dụng của nó
- Biểu thức chính quy trong trường hợp phân biệt chữ hoa chữ thường và tối ưu hóa biểu thức chính quy
- Sử dụng biểu thức chính quy trong một mảng
Từ nghiên cứu trên, chúng ta có thể nói rằng biểu thức chính quy được sử dụng để tìm mẫu và từ từ chuỗi đã chỉ định. Một biểu thức chính quy có thể tìm kiếm một tài liệu được lập chỉ mục bằng cách khớp các giá trị với các giá trị được lập chỉ mục. Nếu biểu thức chính quy ở dạng tiền tố, thì nó sẽ tìm kiếm tất cả các kết quả bắt đầu từ một tiền tố cụ thể