MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

2 cách thay thế chuỗi con trong MongoDB

MongoDB 4.4 đã giới thiệu chín toán tử đường ống tổng hợp mới, bao gồm hai toán tử mới để tìm và thay thế một chuỗi con.

Hai toán tử mới cho phép bạn tìm và thay thế một chuỗi con là $replaceOne$replaceAll toán tử.

Đây là những gì mỗi nhà điều hành làm:

Nhà điều hành
Mô tả
$replaceOne Thay thế phiên bản đầu tiên của một chuỗi tìm kiếm trong một chuỗi đầu vào bằng một chuỗi thay thế.
$replaceAll Thay thế tất cả các bản sao của một chuỗi tìm kiếm trong một chuỗi đầu vào bằng một chuỗi thay thế.

Sự khác biệt duy nhất giữa các toán tử này là $replaceOne thay thế cho đầu tiên phiên bản của chuỗi con, trong khi $replaceAll thay thế tất cả các phiên bản của chuỗi con.

$replaceOne Nhà điều hành

Giả sử chúng ta có một bộ sưu tập được gọi là products với tài liệu sau:

{
	"_id" : 1,
	"product" : "Left Handed Screwdriver with Left Handed Carry Case"
}

Chúng ta có thể sử dụng $replaceOne toán tử để thay thế phiên bản đầu tiên của chuỗi con Left Handed với một chuỗi khác:

db.products.aggregate([
   {
     $project:
      {
         product: { $replaceOne: { input: "$product", find: "Left Handed", replacement: "Ambidextrous" } }
      }
   }
]).pretty()

Kết quả:

{
	"_id" : 1,
	"product" : "Ambidextrous Screwdriver with Left Handed Carry Case"
}

Lưu ý rằng thực tế có hai phiên bản của chuỗi con (Left Handed ) nhưng chỉ có trường hợp đầu tiên được thay thế.

$replaceAll Nhà điều hành

Trong ví dụ trước, chúng tôi đã thay thế phiên bản đầu tiên của chuỗi con.

Bây giờ hãy sử dụng $replaceAll toán tử để thay thế tất cả các phiên bản của chuỗi con:

db.products.aggregate([
   {
     $project:
      {
         product: { $replaceAll: { input: "$product", find: "Left Handed", replacement: "Ambidextrous" } }
      }
   }
]).pretty()

Kết quả:

{
	"_id" : 1,
	"product" : "Ambidextrous Screwdriver with Ambidextrous Carry Case"
}

Lần này cả hai phiên bản của chuỗi con (Left Handed ) đã được thay thế.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Node.js - đợi nhiều lệnh gọi không đồng bộ

  2. Mongo tìm các bản sao cho các mục nhập cho hai hoặc nhiều trường

  3. Cách phát triển ứng dụng cho MongoDB và Redpanda bằng Docker Compose

  4. Danh sách các toán tử ngày, phương thức và biến trong MongoDB

  5. Trong NodeJS, làm thế nào để xuất kết quả từ mongodb với các tên trường khác nhau?