Definición
$trimElimina los caracteres de espacio en blanco, incluidos los nulos, o los caracteres especificados del principio y del final de una cadena.
$trimtiene la siguiente sintaxis:{ $trim: { input: <string>, chars: <string> } } El
$trimprocesa un documento con los siguientes campos:CampoDescripcióninputLa cadena que se va a recortar. El argumento puede ser cualquier valor válido. Expresión que se resuelve en una cadena. Para más información sobre expresiones, consulte Expresiones.
charsOpcional. El/los carácter(es) a recortar de
input.El argumento puede ser cualquier expresión válida que se resuelva en una cadena. El
$trimoperador descompone la cadena en puntos de código UTF individuales.para recortarinputdesde.Si no se especifica, elimina los espacios en blanco, incluido el carácter nulo. Para ver la lista de espacios en blanco, consulte
$trimCaracteres de espacio en blanco.
Comportamiento
Por defecto,
$trimelimina los caracteres de espacio en blanco, incluido el carácter nulo:EjemploResultados{ $trim: { input: " \n good bye \t " } }"good bye"Puede anular los caracteres predeterminados para recortar utilizando el campo
chars.Por ejemplo, lo siguiente recorta cualquier
gyedel principio y del final de la entrada. Dado que la entrada empieza con un espacio, no se puede recortar ningún carácter del principio de la cadena.EjemploResultados{ $trim: { input: " ggggoodbyeeeee", chars: "ge" } }" ggggoodby"Si desea anular los caracteres predeterminados para recortar, puede incluir explícitamente los caracteres de espacio en blanco para recortar en el campo
chars.Por ejemplo, lo siguiente recorta cualquier espacio,
g,edesde el inicio y el final de la entrada.EjemploResultados{ $trim: { input: " ggggoodbyeeeee", chars: " ge" } }"oodby"
Caracteres de espacio en blanco
Por defecto, $trim remueve los siguientes espacios en blanco, incluido el carácter nulo:
Unicode | Secuencia de escape | Descripción |
|---|---|---|
U+0000 | '0' | Carácter nulo |
U+0020 | ' ' | Espacio |
U+0009 | 't' | Horizontal tab |
U+000A | 'n' | Salto de línea/nueva línea |
U+000B | 'v' | Pestaña vertical |
U+000C | 'F' | Avance de formulario |
U+000D | 'r' | Retorno de carro |
U+00A0 | Espacio sin salto | |
U+1680 | Marca espacial Ogham | |
U+2000 | En quad | |
U+2001 | Em quad | |
U+2002 | En space | |
U+2003 | Em space | |
U+2004 | Three-per-em space | |
U+2005 | Four-per-em space | |
U+2006 | Six-per-em space | |
U+2007 | Espacio de figuras | |
U+2008 | espacio de puntuación | |
U+2009 | Espacio delgado | |
U+200A | Espacio para el cabello |
Ejemplo
Considere una colección inventory con los siguientes documentos:
db.inventory.insertMany( [ { _id: 1, item: "ABC1", quarter: "13Q1", description: " product 1" }, { _id: 2, item: "ABC2", quarter: "13Q4", description: "product 2 \n The product is in stock. \n\n " }, { _id: 3, item: "XYZ1", quarter: "14Q2", description: null } ] )
La siguiente operación utiliza el operador para eliminar los espacios iniciales y finales $trim del description campo:
db.inventory.aggregate([ { $project: { item: 1, description: { $trim: { input: "$description" } } } } ])
La operación devuelve los siguientes resultados:
{ _id: 1, item: "ABC1", description: "product 1" } { _id: 3, item: "XYZ1", description: null } { _id: 2, item: "ABC2", description: "product 2 \n The product is in stock." }