- Reference >
- Operators >
- Aggregation Pipeline Operators >
- $trim (aggregation)
$trim (aggregation)¶
On this page
Definition¶
-
$trim¶ New in version 4.0.
Removes whitespace characters, including null, or the specified characters from the beginning and end of a string.
$trimhas the following syntax:The
$trimtakes a document with the following fields:Field Description inputThe string to trim. The argument can be any valid expression that resolves to a string. For more information on expressions, see Expressions. charsOptional. The character(s) to trim from
input.The argument can be any valid expression that resolves to a string. The
$trimoperator breaks down the string into individual UTF code point to trim frominput.If unspecified,
$trimremoves whitespace characters, including the null character. For the list of whitespace characters, see Whitespace Characters.
Behavior¶
By default,
$trimremoves whitespace characters, including the null character:Example Results { $trim: { input: " \n good bye \t " } }"good bye"You can override the default characters to trim using the
charsfield.For example, the following trims any
gandefrom the start and end of the input. Since the input starts with a whitespace, neither character can be trimmed from the start of the string.Example Results { $trim: { input: " ggggoodbyeeeee", chars: "ge" } }" ggggoodby"If overriding the default characters to trim, you can explicitly include the whitespace character(s) to trim in the
charsfield.For example, the following trims any space,
g,efrom the start and end of the input.Example Results { $trim: { input: " ggggoodbyeeeee", chars: " ge" } }"oodby"
Whitespace Characters¶
By default, $trim removes the following whitespaces,
including the null character:
| Unicode | Escape sequence | Description |
|---|---|---|
| U+0000 | ‘0’ | Null character |
| U+0020 | ‘ ‘ | Space |
| U+0009 | ‘t’ | Horizontal tab |
| U+000A | ‘n’ | Line feed/new line |
| U+000B | ‘v’ | Vertical tab |
| U+000C | ‘f’ | Form feed |
| U+000D | ‘r’ | Carriage return |
| U+00A0 | Non-breaking space | |
| U+1680 | Ogham space mark | |
| 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 | Figure space | |
| U+2008 | Punctuation space | |
| U+2009 | Thin space | |
| U+200A | Hair space |