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 string a recortar. El argumento puede ser cualquier valor válido expresión que se resuelve en una string. Para obtener más información sobre las expresiones, consulta 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 string. El operador
$trimdivide la cadena en puntos de códigoUTF individuales.para recortarinputdesde.Si no se especifica,
$trimremueve los caracteres de espacio en blanco, incluido el carácter nulo. Para la lista de caracteres de espacio, consulta Caracteres de espacio.
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 elimina cualquier
gyedel inicio y final de la entrada. Dado que la entrada comienza con un espacio en blanco, ningún carácter puede ser eliminado del inicio de la string.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,edel inicio y del 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' | Alimentación de línea/nueva línea |
U+000B | 'v' | Pestaña vertical |
U+000C | 'f' | Salto de página |
U+000D | 'r' | Retorno de carro |
U+00A0 | Espacio sin salto | |
U+1680 | Marca de espacio 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 $trim para remover los espacios en blanco al principio y al final del campo description:
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." }