sql >> Database teknologi >  >> NoSQL >> MongoDB

2 måder at erstatte en understreng i MongoDB

MongoDB 4.4 introducerede ni nye aggregeringspipeline-operatører, inklusive to nye operatører til at finde og erstatte en understreng.

De to nye operatorer, der giver dig mulighed for at finde og erstatte en understreng, er $replaceOne og $replaceAll operatører.

Her er, hvad hver operatør gør:

Operator Beskrivelse
$replaceOne Erstatter den første forekomst af en søgestreng i en inputstreng med en erstatningsstreng.
$replaceAll Erstatter alle forekomster af en søgestreng i en inputstreng med en erstatningsstreng.

Den eneste forskel mellem disse operatorer er, at $replaceOne erstatter den første forekomst af understrengen, mens $replaceAll erstatter alle forekomster af understrengen.

$replaceOne Operatør

Antag, at vi har en samling kaldet products med følgende dokument:

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

Vi kan bruge $replaceOne operatør for at erstatte den første instans af understrengen Left Handed med en anden streng:

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"
}

Bemærk, at der faktisk er to forekomster af understrengen (Left Handed ), men kun den første instans blev erstattet.

$replaceAll Operatør

I det foregående eksempel erstattede vi den første forekomst af understrengen.

Lad os nu bruge $replaceAll operatør for at erstatte alle forekomster af understrengen:

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

Resultat:

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

Denne gang begge forekomster af understrengen (Left Handed ) blev erstattet.


  1. Hvordan indstiller/får man pandas.DataFrame til/fra Redis?

  2. Hvordan sætter man en billedfil i et json-objekt?

  3. I MongoDB mapreduce, hvordan kan jeg udjævne værdiobjektet?

  4. Hvordan bestemmer man udførelsestiden for et Lua-script i Redis?