MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

2 sposoby na zastąpienie podciągu w MongoDB

MongoDB 4.4 wprowadził dziewięć nowych operatorów potoku agregacji, w tym dwa nowe operatory do znajdowania i zastępowania podciągu.

Dwa nowe operatory, które pozwalają znaleźć i zamienić podciąg to $replaceOne i $replaceAll operatorów.

Oto, co robi każdy operator:

Operator Opis
$replaceOne Zastępuje pierwsze wystąpienie ciągu wyszukiwania w ciągu wejściowym ciągiem zastępczym.
$replaceAll Zastępuje wszystkie wystąpienia ciągu wyszukiwania w ciągu wejściowym ciągiem zastępczym.

Jedyna różnica między tymi operatorami polega na tym, że $replaceOne zastępuje pierwszy wystąpienie podciągu, podczas gdy $replaceAll zastępuje wszystkie wystąpienia podciągu.

$replaceOne Operator

Załóżmy, że mamy kolekcję o nazwie products z następującym dokumentem:

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

Możemy użyć $replaceOne operator zastępujący pierwsze wystąpienie podciągu Left Handed z innym ciągiem:

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

Wynik:

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

Zauważ, że w rzeczywistości istnieją dwie instancje podciągu (Left Handed ), ale tylko pierwsza instancja została zastąpiona.

$replaceAll Operator

W poprzednim przykładzie zastąpiliśmy pierwsze wystąpienie podciągu.

Teraz użyjmy $replaceAll operator do zastąpienia wszystkich instancje podciągu:

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

Wynik:

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

Tym razem obie instancje podciągu (Left Handed ) zostały zastąpione.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wdrażanie zestawów replik MongoDB w różnych regionach na platformie AWS

  2. Jak pobrać tablicę z kolekcji mongoDB?

  3. Najlepsza praktyka w utrzymywaniu sesji MGO

  4. Domyślna biblioteka obietnic Mongoose jest przestarzała w stosie MEAN

  5. Różnica między .save() a użyciem update()