sql >> Database >  >> NoSQL >> MongoDB

2 manieren om een ​​substring in MongoDB te vervangen

MongoDB 4.4 introduceerde negen nieuwe aggregatiepijplijnoperators, waaronder twee nieuwe operators voor het vinden en vervangen van een substring.

De twee nieuwe operators waarmee u een subtekenreeks kunt vinden en vervangen, zijn de $replaceOne en $replaceAll operators.

Dit is wat elke operator doet:

Operator Beschrijving
$replaceOne Vervangt de eerste instantie van een zoekstring in een invoerstring door een vervangende string.
$replaceAll Vervangt alle instanties van een zoekstring in een invoerstring door een vervangende string.

Het enige verschil tussen deze operators is dat $replaceOne vervangt de eerste instantie van de substring, terwijl $replaceAll vervangt alle instanties van de subtekenreeks.

De $replaceOne Operator

Stel dat we een verzameling hebben met de naam products met het volgende document:

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

We kunnen de $replaceOne . gebruiken operator om de eerste instantie van de substring Left Handed te vervangen met een andere string:

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

Resultaat:

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

Merk op dat er eigenlijk twee instanties zijn van de substring (Left Handed ) maar alleen het eerste exemplaar werd vervangen.

De $replaceAll Operator

In het vorige voorbeeld hebben we de eerste instantie van de substring vervangen.

Laten we nu de $replaceAll . gebruiken operator om alle te vervangen instanties van de subtekenreeks:

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

Resultaat:

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

Deze keer beide instanties van de substring (Left Handed ) zijn vervangen.


  1. Hernoemen van belangrijke naamgevingsconventies?

  2. Mongoose kan geen verbinding maken zonder internet

  3. Wat is een cursor in MongoDB?

  4. Hoe voeg ik een document met datum in Mongo in?