Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

$substr(聚合)

在此页面上

  • 定义
  • 行为
  • 例子
$substr

自版本 3.4 起已弃用$substr 现为 $substrBytes 的别名。

返回字符串的子字符串,从指定索引位置开始并包含指定数量的字符。该索引从零开始。

$substr 通过以下语法实现:

{ $substr: [ <string>, <start>, <length> ] }

只要第一个参数解析为字符串,并且第二个和第三个参数解析为整数,参数就可以是任何有效的表达式。 有关表达式的更多信息,请参阅表达式

如果 <start> 是负数,$substr 将返回空字符串 ""

如果 <length> 为负数,则 $substr 会返回一个子字符串,该子字符串从指定索引开始,并包含该字符串的其余部分。

$substr 仅对 ASCII 字符字符串有明确定义的行为。

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

{ "_id" : 1, "item" : "ABC1", quarter: "13Q1", "description" : "product 1" }
{ "_id" : 2, "item" : "ABC2", quarter: "13Q4", "description" : "product 2" }
{ "_id" : 3, "item" : "XYZ1", quarter: "14Q2", "description" : null }

以下操作使用 $substr 操作符将 quarter 值分为 yearSubstringquarterSubstring 两部分:

db.inventory.aggregate(
[
{
$project:
{
item: 1,
yearSubstring: { $substr: [ "$quarter", 0, 2 ] },
quarterSubtring: { $substr: [ "$quarter", 2, -1 ] }
}
}
]
)

操作返回以下结果:

{ "_id" : 1, "item" : "ABC1", "yearSubstring" : "13", "quarterSubtring" : "Q1" }
{ "_id" : 2, "item" : "ABC2", "yearSubstring" : "13", "quarterSubtring" : "Q4" }
{ "_id" : 3, "item" : "XYZ1", "yearSubstring" : "14", "quarterSubtring" : "Q2" }

后退

$strLenCP

在此页面上