Docs 菜单

Docs 主页开发应用程序MongoDB Manual

$rtrim(聚合)

在此页面上

  • 定义
  • 行为
  • 例子
$rtrim

删除字符串末尾的空白字符(包括 null)或指定字符。

$rtrim 通过以下语法实现:

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

$rtrim接受包含以下字段的文档:

字段
说明
input
待修剪的字符串。该参数可以是解析为字符串的任何有效表达式。有关表达式的更多信息,请参阅表达式操作符。
chars

可选。 要从input末尾修剪的字符。

该参数可以是任何解析为字符串的有效 表达式$rtrim 操作符将字符串分解为单独的 UTF 代码点input 中修剪。

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

提示

另请参阅:

  • $ltrim

  • $trim

  • 默认情况下, $rtrim会删除输入字符串末尾的空格,包括空字符:

    例子
    结果
    { $rtrim: { input: " \n good bye \t " } }
    " \n good bye"
  • 可使用 chars 字段覆盖待修剪的默认字符。

    例如,以下代码会删除输入字符串末尾的所有ge 。 由于输入以空格结尾,因此无法从字符串末尾修剪这两个字符。

    例子
    结果
    { $rtrim: { input: "ggggoodbyeeeee ", chars: "ge" } }
    "ggggoodbyeeeee "
  • 如果覆盖待修剪的默认字符,则可以在 chars 字段中明确包含待修剪的空白字符。

    例如,以下代码会删除输入字符串末尾的所有空格或e

    例子
    结果
    { $rtrim: { input: " ggggoodbyeeeee ", chars: "e " } }
    " ggggoodby"

默认情况下, $rtrim会删除以下空格,包括空字符:

Unicode
转义序列
说明
U+0000
'0'
Null 字符
U+0020
' '
空格
U+0009
't'
水平制表符
U+000A
'n'
换行/新行
U+000B
'v'
垂直制表符
U+000C
'f'
换页
U+000D
'r'
回车
U+00A0
不间断空格
U+1680
欧甘文空格标记
U+2000
En 空隔符
U+2001
Em 空隔符
U+2002
En 空格
U+2003
Em 空格
U+2004
⅓ em 空格
U+2005
¼ em 空格
U+2006
⅙ em 空格
U+2007
数字空格
U+2008
标点符号空格
U+2009
窄空格
U+200A
发宽空格

考虑包含以下文档的 inventory 集合:

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

以下操作使用$rtrim操作符删除description字段中的尾随空格:

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

操作返回以下结果:

{ "_id" : 1, "item" : "ABC1", "description" : " product 1" }
{ "_id" : 2, "item" : "ABC2", "description" : "product 2 \n The product is in stock." }
{ "_id" : 3, "item" : "XYZ1", "description" : null }
← $round(聚合)

在此页面上