sql >> Databasteknik >  >> NoSQL >> MongoDB

2 sätt att ersätta en delsträng i MongoDB

MongoDB 4.4 introducerade nio nya aggregeringspipeline-operatörer, inklusive två nya operatörer för att hitta och ersätta en delsträng.

De två nya operatorerna som låter dig hitta och ersätta en delsträng är $replaceOne och $replaceAll operatörer.

Så här gör varje operatör:

Operator Beskrivning
$replaceOne Ersätter den första instansen av en söksträng i en inmatningssträng med en ersättningssträng.
$replaceAll Ersätter alla instanser av en söksträng i en inmatningssträng med en ersättningssträng.

Den enda skillnaden mellan dessa operatorer är att $replaceOne ersätter den första instans av delsträngen, medan $replaceAll ersätter alla instanser av delsträngen.

$replaceOne Operatör

Anta att vi har en samling som heter products med följande dokument:

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

Vi kan använda $replaceOne operatorn för att ersätta den första instansen av delsträngen Left Handed med en annan sträng:

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

Resultat:

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

Lägg märke till att det faktiskt finns två instanser av delsträngen (Left Handed ) men bara den första instansen ersattes.

$replaceAll Operatör

I föregående exempel ersatte vi den första instansen av delsträngen.

Låt oss nu använda $replaceAll operatör för att ersätta alla instanser av delsträngen:

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

Resultat:

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

Den här gången båda instanserna av delsträngen (Left Handed ) ersattes.


  1. De tre A:en för MongoDB Security – Autentisering, auktorisering och revision

  2. Konfigurera singleton-anslutning med node.js och mongo

  3. Skillnaden mellan StackExchange.Redis och ServiceStack.Redis

  4. Kan redis helt ersätta mysql?