文档菜单
文档首页
/
MongoDB 手册
/ / /

$trim (聚合)

在本页

  • 定义
  • 行为
  • 示例
$trim

从字符串的开始和结束处删除空白字符,包括空字符或指定的字符。

$trim 的语法如下

{ $trim: { input: <string>, chars: <string> } }

$trim 接受以下字段的文档

字段
描述
input
要修剪的字符串。参数可以是任何有效的表达式,该表达式解析为字符串。有关表达式的信息,请参阅 表达式运算符。
chars

可选。从 input 修剪的字符。

参数可以是任何有效的 表达式,该表达式解析为字符串。$trim 运算符将字符串分解为单个 UTF 代码点,从 input 修剪。

如果未指定,$trim 会删除空白字符,包括空字符。有关空白字符的列表,请参阅 空白字符。

提示

另请参阅

  • $ltrim

  • $rtrim

  • 默认情况下,$trim 移除空白字符,包括空字符

    示例
    结果
    { $trim: { input: " \n good bye \t " } }
    "good bye"
  • 您可以使用 chars 字段覆盖默认要移除的字符。

    例如,以下从输入的开始和结束处移除了任何 ge。由于输入以空白字符开头,这两个字符都不能从字符串的开头移除。

    示例
    结果
    { $trim: { input: " ggggoodbyeeeee", chars: "ge" } }
    " ggggoodby"
  • 如果覆盖了默认要移除的字符,您可以在 chars 字段中显式包括要移除的空白字符。

    例如,以下从输入的开始和结束处移除了任何空格、ge

    示例
    结果
    { $trim: { input: " ggggoodbyeeeee", chars: " ge" } }
    "oodby"

默认情况下,$trim 移除以下空白字符,包括空字符

Unicode
转义序列
描述
U+0000
'0'
空字符
U+0020
' '
空格
U+0009
't'
水平制表符
U+000A
'n'
换行符/新行
U+000B
'v'
垂直制表符
U+000C
'f'
换页符
U+000D
'r'
回车符
U+00A0
非断开空格
U+1680
Ogham space mark
U+2000
En quad
U+2001
Em quad
U+2002
En space
U+2003
Em space
U+2004
三倍空格
U+2005
四倍空格
U+2006
六倍空格
U+2007
图空格
U+2008
标点空格
U+2009
细空格
U+200A
发丝空格

考虑一个具有以下文档的 库存 集合

{ "_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 }

以下操作使用 $trim 操作符从 描述 字段中删除前导和尾随空格

db.inventory.aggregate([
{ $project: { item: 1, description: { $trim: { input: "$description" } } } }
])

操作返回以下结果

{ "_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." }

返回

$tsSecond