Cách sử dụng tìm kiếm ký tự đại diện trong mongodb
Hiển thị vai trò bằng cách sử dụng ký tự đại diện
Trên hệ thống z/TPF , bạn có thể tìm kiếm vai trò bằng ký tự đại diện (*). Chỉ định ký tự đại diện ở cuối tên vai trò. Bất kỳ ký tự nào được chỉ định sau ký tự đại diện đều bị bỏ qua. Show
Để sử dụng hỗ trợ ký tự đại diện từ trình bao MongoDB từ xa, bạn phải mã hóa rolesInfo command. Ví dụ sau sử dụng hỗ trợ ký tự đại diện để hiển thị tất cả các vai trò bắt đầu bằng chữ P trong cơ sở dữ liệu z/bảo mật người dùng TPF của . MongoDB shell:
chủ đề phụ huynh. Hiển thị vai trò trong cơ sở dữ liệu bảo mật người dùng z/TPF tham khảo liên quan
Thông tin liên quan
Có một số cách để tạo chỉ mục trong MongoDB và từ MongoDB 4. 2, chúng ta có thể tạo các chỉ mục ký tự đại diện Chỉ mục ký tự đại diện có thể được coi là một loại bộ lọc tự động khớp với bất kỳ trường, tài liệu phụ hoặc mảng nào trong một bộ sưu tập, sau đó lập chỉ mục các kết quả trùng khớp đó Điều này có thể hữu ích nếu tài liệu của bạn chứa dữ liệu phi cấu trúc với các trường khác nhau trong các hệ thống phân cấp khác nhau. Trong những trường hợp như vậy, không có cách nào để dự đoán chỉ mục sẽ là gì, bởi vì bạn không biết dữ liệu nào sẽ có trong mỗi tài liệu Các chỉ mục ký tự đại diện có thể hữu ích với dữ liệu phi cấu trúc như vậy, bởi vì chúng lập chỉ mục tất cả các giá trị vô hướng của trường, tự động lặp lại vào bất kỳ tài liệu con hoặc mảng nào và lập chỉ mục tất cả các trường vô hướng trong tài liệu con/mảng Bộ sưu tập ví dụChỉ mục ký tự đại diện không dành cho mọi bộ sưu tập. Bạn sẽ chỉ tạo một chỉ mục ký tự đại diện trên một số bộ sưu tập nhất định với các tài liệu chứa dữ liệu phi cấu trúc với các trường khác nhau trong các hệ thống phân cấp khác nhau Dưới đây là một ví dụ về bộ sưu tập có tên là 1 có thể là ứng cử viên sáng giá cho chỉ mục ký tự đại diện
Mỗi tài liệu trong số 3 tài liệu trong bộ sưu tập này có trường 2, nhưng chúng chứa các trường khác nhau trong trường đó. Nó không nhất quán. Điều này thường gây khó khăn cho việc tạo chỉ mục vì chúng tôi không biết trường nào sẽ có trong mỗi tài liệu. Chúng tôi có thể cần tạo nhiều chỉ mục, sau khi phân tích cẩn thận các cấu trúc tài liệu có thểMay mắn thay, chúng ta có thể tạo một chỉ mục ký tự đại diện Nhưng trước tiên, hãy xem kế hoạch truy vấn có thể trông như thế nào khi truy vấn một trong các trường đó. Hãy tưởng tượng chúng ta muốn tìm xem con chó nào đã nhận được giải thưởng “Con chó nhanh nhất” tại cuộc thi Marathon New York. Chúng ta có thể làm như sau
Và nếu chúng tôi muốn kiểm tra kế hoạch truy vấn, chúng tôi có thể thêm 3 vào cuối
Cái nào trả về sau
Điều này cho chúng tôi biết rằng nó sẽ thực hiện quét bộ sưu tập (COLLSCAN), có nghĩa là nó phải quét qua mọi tài liệu để tìm trường Tạo chỉ mục ký tự đại diệnDưới đây là ví dụ về cách tạo chỉ mục ký tự đại diện cho bộ sưu tập trên ________số 8đầu ra { "createdCollectionAutomatically" : false, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 } Đó là nó. Chỉ mục ký tự đại diện đã được tạo Để tạo chỉ mục ký tự đại diện, chúng tôi đã sử dụng tên trường mà chúng tôi muốn tạo chỉ mục trên đó (trong trường hợp này là trường 2), sau đó chúng tôi nối tên trường đó bằng một dấu chấm ( 5), và sau đó là phần quan trọng, phần 6 6 chỉ định rằng một chỉ mục ký tự đại diện phải được tạo từ trường này và tất cả các tài liệu phụ của nóTiền tố của 6 với 2 giới hạn phạm vi của chỉ mục ký tự đại diện chỉ trong trường 2Bây giờ, hãy kiểm tra lại kế hoạch truy vấn cho truy vấn đã nói ở trên
Kết quả 8Lần này quét bộ sưu tập (COLLSCAN) đã được thay thế bằng quét chỉ mục (IXSCAN) trên chỉ mục ký tự đại diện mới được tạo của chúng tôi Mỗi trường trong trường 2 của chúng tôi đã được lập chỉ mục dưới dạng đường dẫn/giá trị và có một mục nhập trong chỉ mục cho mọi trường trong cấu trúc phân cấp. Trường hợp giá trị trường là một tài liệu con (chẳng hạn như của chúng tôi. 2), việc lập chỉ mục đã đi xuống tài liệu con và lặp lại quy trìnhTạo chỉ mục ký tự đại diện trên tất cả các đường dẫn trườngTrong ví dụ trước, chúng tôi đã tạo một chỉ mục ký tự đại diện trên một đường dẫn trường duy nhất. Có thể tạo chỉ mục ký tự đại diện trên tất cả các đường dẫn trường chỉ bằng cách sử dụng 6 mà không cần thêm tiền tố vào trườngVí dụ, chúng ta có thể đã làm điều này 2Điều đó sẽ tạo ra một chỉ mục ký tự đại diện trên tất cả các đường dẫn trường Trên thực tế, điều đó không hoàn toàn đúng. Theo mặc định, các chỉ mục ký tự đại diện không được tạo trên trường 4. Để bao gồm trường 4, bạn cần đưa nó vào tài liệu 6
Làm cách nào để tìm kiếm trong MongoDB bằng ký tự đại diện?Tạo Chỉ mục ký tự đại diện trên tất cả các trường
. Nếu một trường nhất định là một tài liệu hoặc mảng lồng nhau, chỉ mục ký tự đại diện sẽ lặp lại vào tài liệu/mảng và lưu trữ giá trị cho tất cả các trường trong tài liệu/mảng.
Làm cách nào để tìm kiếm trong MongoDB bằng regex?Trong MongoDB, các . i. Để khớp cả mẫu chữ thường và chữ hoa trong chuỗi m. Để bao gồm ^ và $ trong mẫu trong trận đấu tôi. e. để tìm kiếm cụ thể ^ và $ bên trong chuỗi. . x. Để bỏ qua tất cả các ký tự khoảng trắng trong mẫu $regex Ví dụ về tìm kiếm ký tự đại diện là gì?Ký tự đại diện. Tìm kiếm nhiều ký tự
. Truy vấn wom? n tìm các từ woman, women, womyn, v.v. Truy vấn bird* tìm chim, chim hót, người chim, chim và các từ khác bắt đầu bằng chim.
Làm cách nào để tìm kiếm các ký tự đặc biệt trong MongoDB?Để khớp một ký tự đặc biệt, đặt dấu gạch chéo ngược lên trước ký tự đó , như thế này \*. |