sql >> Databáze >  >> NoSQL >> MongoDB

2 způsoby, jak nahradit podřetězec v MongoDB

MongoDB 4.4 představil devět nových operátorů agregačního kanálu, včetně dvou nových operátorů pro hledání a nahrazování podřetězce.

Dva nové operátory, které vám umožňují najít a nahradit podřetězec, jsou $replaceOne a $replaceAll operátory.

Každý operátor dělá toto:

Operátor Popis
$replaceOne Nahradí první výskyt hledaného řetězce ve vstupním řetězci náhradním řetězcem.
$replaceAll Nahradí všechny výskyty hledaného řetězce ve vstupním řetězci náhradním řetězcem.

Jediný rozdíl mezi těmito operátory je, že $replaceOne nahrazuje první instance podřetězce, zatímco $replaceAll nahrazuje vše instance podřetězce.

$replaceOne Operátor

Předpokládejme, že máme kolekci nazvanou products s následujícím dokumentem:

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

Můžeme použít $replaceOne operátor, který nahradí první výskyt podřetězce Left Handed s jiným řetězcem:

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

Výsledek:

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

Všimněte si, že ve skutečnosti existují dva výskyty podřetězce (Left Handed ), ale nahrazena byla pouze první instance.

$replaceAll Operátor

V předchozím příkladu jsme nahradili první instanci podřetězce.

Nyní použijeme $replaceAll operátor, který nahradí vše instance podřetězce:

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

Výsledek:

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

Tentokrát oba výskyty podřetězce (Left Handed ) byly nahrazeny.


  1. Jak A a NE v MongoDB $text vyhledávání

  2. Jak shodit index pomocí Mongoose

  3. Vložte velký záznam do mongodb pomocí mongo shell

  4. existuje způsob, jak automaticky generovat ObjectId, když je model mongoose nový?