Làm cách nào để tìm kiếm các ký tự đặc biệt trong MongoDB?
Bạn đang tìm thứ gì đó có chứa "m" ở đâu đó (toán tử ' 3' của SQL tương đương với biểu thức chính quy' ' 4'), chứ không phải thứ có "m" neo vào đầu chuỗi Show Ghi chú. MongoDB sử dụng các biểu thức chính quy mạnh hơn "THÍCH" trong SQL. Với các biểu thức chính quy, bạn có thể tạo bất kỳ mẫu nào mà bạn tưởng tượng Để biết thêm thông tin về biểu thức chính quy, hãy tham khảo Biểu thức chính quy (MDN) Mongodb – Thêm trường mới vào mọi tài liệu trong bộ sưu tập MongoDBTương tự như cập nhật trường bộ sưu tập hiện có, sẽ thêm một trường mới nếu trường được chỉ định không tồn tại Kiểm tra ví dụ này
CHỈNH SỬA Trong trường hợp bạn muốn thêm new_field vào tất cả bộ sưu tập của mình, bạn phải sử dụng bộ chọn trống và đặt nhiều cờ thành true (thông số cuối cùng) để cập nhật tất cả tài liệu
CHỈNH SỬA Trong ví dụ trên, 2 trường cuối cùng 6 chỉ định các cờ 7 và 8Upsert. Nếu được đặt thành true, hãy tạo tài liệu mới khi không có tài liệu nào khớp với tiêu chí truy vấn đa. Nếu được đặt thành true, cập nhật nhiều tài liệu đáp ứng tiêu chí truy vấn. Nếu được đặt thành false, hãy cập nhật một tài liệu Thuật toán tìm kiếm văn bản ngram rất hữu ích để tìm kiếm văn bản cho một chuỗi ký tự cụ thể trong một trường của bộ sưu tập. Tính năng này có thể được sử dụng để tìm các kết quả khớp chuỗi con chính xác, cung cấp giải pháp thay thế để phân tích cú pháp văn bản từ các ngôn ngữ khác với danh sách các ngôn ngữ châu Âu đã được hỗ trợ bởi công cụ tìm kiếm toàn văn của Cộng đồng MongoDB. Nó cũng có thể trở nên thuận tiện hơn khi làm việc với văn bản trong đó các ký hiệu như dấu gạch ngang ('-'), dấu gạch dưới ('_') hoặc dấu gạch chéo ("/") không phải là dấu phân cách mã thông báo Không giống như công cụ tìm kiếm toàn văn MongoDB, thuật toán tìm kiếm ngram chỉ sử dụng các ký tự phân cách mã thông báo sau không được tính là ký tự từ trong ngôn ngữ của con người
Tìm kiếm văn bản ngram chậm hơn tìm kiếm toàn văn MongoDB Cách sử dụngĐể sử dụng ngram, hãy tạo một chỉ mục văn bản trên bộ sưu tập, đặt tham số
thuật toán tìm kiếm ngram xử lý các ký tự đặc biệt như các thuật ngữ riêng lẻ. Do đó, bạn không cần phải đặt chuỗi tìm kiếm trong dấu ngoặc kép thoát ( ________số 8_______ Tuy nhiên, cả công cụ tìm kiếm toàn văn ngram và MongoDB đều coi các từ có dấu gạch nối-dấu trừ Các toán tử truy vấn so sánh MongoDB như $eq và $ne rất hữu ích để tìm các giá trị bằng hoặc không bằng một giá trị so sánh chính xác cụ thể. Thay vào đó, khi cần tìm các giá trị dựa trên sự tương đồng, thì việc so khớp mẫu sẽ hữu ích. Để thực hiện khớp mẫu trong MongoDB, hãy sử dụng { trường. { $regex. "mẫu" } }, trong đó Các mẫu được sử dụng với toán tử truy vấn đánh giá $regex có thể chứa một số ký tự đặc biệt hoặc "siêu ký tự", đại diện cho một thứ khác ngoài chính chúng Mặc dù hầu hết các ký tự trong các mẫu tự khớp với nhau, nhưng các ký tự đặc biệt sau đây là ngoại lệ
* 2
Bảng sau liệt kê các câu lệnh MySQL và các câu lệnh MongoDB tương ứng MySQLMongoDBMethodTạo kết nốiTạo yêu cầu khách hàng ('mongodb'). MongoClientTạo cơ sở dữ liệuTạo kết nối & cơ sở dữ liệuTạo bảngTạo bộ sưu tậpInsert IntoInsertSelect FromFindWhereQueryToán tử truy vấn so sánh == > < TRONG KHÔNG VÀO Toán tử truy vấn so sánh MySQLMongoDBSELECT * TỪ Khoảng không quảng cáo WHERE qty = 20;db. kiểm kê. tìm ( { số lượng. { $eq. 20 } } ) CHỌN * TỪ Tồn kho WHERE qty. = 20;db. kiểm kê. tìm ( { số lượng. { $ne. 20 } } )CẬP NHẬT giá SET hàng tồn kho = 9. Hãng 99 WHERE. phí > 2db. kiểm kê. cập nhật ( { "nhà cung cấp dịch vụ. phí". { $gt. 2 } }, { $set. { giá bán. 9. 99 } } ) CHỌN * TỪ hàng tồn kho WHERE qty < 20;db. kiểm kê. tìm ( { số lượng. { $lt. 20 } } ) CHỌN * TỪ hàng tồn kho WHERE qty IN (5, 15);db. kiểm kê. tìm ( { số lượng. { $in. [ 5, 15 ] } } ) CHỌN * TỪ hàng tồn kho KHÔNG CÓ SỐ LƯỢNG (5, 15);db. kiểm kê. tìm ( { số lượng. { $nin. [ 5, 15 ] } } ) Toán tử truy vấn logic VÀHOẶC LÀ KHÔNG PHẢI Toán tử truy vấn logic MySQLMongoDBSELECT * TỪ kho WHERE giá > 19. 99 AND danh mục IN ('rượu', 'rượu mùi');db. kiểm kê. tìm( { $và. [ { giá bán. { $gt. 19. 99 } }, { thể loại. { $in. ['rượu', 'rượu mùi'] } } ] } ) CHỌN * TỪ hàng tồn kho WHERE qty < 20 OR price = 10;db. kiểm kê. tìm( { $or. [ {số lượng. { $lt. 20 } }, { giá. 10 } ] } ) CHỌN * TỪ hàng tồn kho KHÔNG (giá > 1. 00);db. kiểm kê. tìm ( { giá. { $không. { $gt. 1. 99 } } } ) CHỌN * TỪ khoảng không quảng cáo WHERE giá. = 1. 99 AND qty >= 20 AND sale = FALSE;db. kiểm kê. tìm( { $nor. [ { giá bán. 1. 99 }, { số lượng. { $lt. 20 } }, { giảm giá. true } ] } ) * 9+ 0MySQLMongoDBLIKE '%a%'{ "name". { "$regex". "a" }THÍCH 'A%'{ "tên". { "$regex". "^A" }THÍCH '%e'{ "tên". { "$regex". "e$" }THÍCH '%d_g%'{ "tên". { "$regex". "đ. g" }Order BySortDeleteDeleteDrop TableDrop CollectionUpdateUpdateLimitLimitJoinJoin
Làm cách nào để tìm kiếm một ký tự trong MongoDB?Để tìm kiếm một chuỗi có ký tự đặc biệt trong tài liệu MongoDB, bạn có thể sử dụng \ . Ở đây, chúng tôi có ký tự đặc biệt $ trong chuỗi của chúng tôi.
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 để chèn 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 \*.
Làm cách nào để sử dụng regex với MongoDB?Nếu bạn muốn thêm một biểu thức chính quy bên trong danh sách điều kiện truy vấn được phân tách bằng dấu phẩy, thì bạn phải sử dụng toán tử $regex. If you want to use x and s options then you have to use $regex operator expression with $options. Starting from the latest version of MongoDB(i.e., 4.0. |