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

$indexOfCP(聚合)

本页内容

  • 定义
  • 行为
  • 示例
$indexOfCP

在字符串中搜索子字符串的首次出现,并返回 UTF-8码位索引(基于0)的第一个出现。如果未找到子字符串,则返回 -1

$indexOfCP 有以下运算符表达式语法:

{ $indexOfCP: [ <string expression>, <substring expression>, <start>, <end> ] }
字段
类型
描述
<string>
字符串

可以是任何有效的 表达式,只要它解析为字符串。有关表达式的更多信息,请参阅 表达式运算符。

如果字符串表达式解析为 null 或引用一个缺失的字段,$indexOfCP 返回 null

如果字符串表达式解析既不是字符串也不是 null,也不引用缺失的字段,$indexOfCP 返回错误。

<substring>
字符串
可以是任何有效的 表达式,只要它解析为字符串。有关表达式的更多信息,请参阅 表达式运算符。
<start>
整数

可选。一个整数,或可以表示为整数的数(如 2.0),用于指定搜索的起始索引位置。可以是任何有效的 表达式,解析为非负整数。

如果未指定,搜索的起始索引位置为字符串的开始。

<end>
整数

可选。一个整数,或可以表示为整数的数(如 2.0),用于指定搜索的结束索引位置。可以是任何有效的 表达式,解析为非负整数。如果您指定了 <end> 索引值,您也应该指定一个 <start> 索引值;否则,$indexOfCP 将使用 <end> 值作为 <start> 索引值而不是 <end> 值。

如果未指定,搜索的结束索引位置为字符串的末尾。

如果在 <string expression> 中找到多个 <substring expression>,则 $indexOfCP 返回从起始索引位置找到的第一个 <substring expression> 的索引。

$indexOfCP 返回 null

  • 如果 <string expression>null,或

  • 如果 <string expression> 引用了输入文档中不存在的字段。

$indexOfCP 返回错误

  • 如果 <string expression> 既不是字符串也不是 null,或

  • 如果 <substring expression>null 或不是字符串或引用输入文档中不存在的字段,或

  • 如果 <start><end> 是负整数(或可以表示为负整数的值,如 -5.0)。

$indexOfCP 返回 -1

  • 如果子字符串在 <string expression> 中未找到,或

  • 如果 <start> 是一个大于 <end> 的数字,或者

  • 如果 <start> 是一个大于字符串字节长度的数字。

示例
结果
{ $indexOfCP: [ "cafeteria", "e" ] }
3
{ $indexOfCP: [ "cafétéria", "é" ] }
3
{ $indexOfCP: [ "cafétéria", "e" ] }
-1
{ $indexOfCP: [ "cafétéria", "t" ] }
4
{ $indexOfCP: [ "foo.bar.fi", ".", 5 ] }
7
{ $indexOfCP: [ "vanilla", "ll", 0, 2 ] }
-1
{ $indexOfCP: [ "vanilla", "ll", -1 ] }
错误
{ $indexOfCP: [ "vanilla", "ll", 12 ] }
-1
{ $indexOfCP: [ "vanilla", "ll", 5, 2 ] }
-1
{ $indexOfCP: [ "vanilla", "nilla", 3 ] }
-1
{ $indexOfCP: [ null, "foo" ] }
null

考虑一个包含以下文档的 库存 集合

{ "_id" : 1, "item" : "foo" }
{ "_id" : 2, "item" : "fóofoo" }
{ "_id" : 3, "item" : "the foo bar" }
{ "_id" : 4, "item" : "hello world fóo" }
{ "_id" : 5, "item" : null }
{ "_id" : 6, "amount" : 3 }

以下操作使用 $indexOfCP 操作符来返回字符串 foo 在每个 项目 字符串中的代码点索引

db.inventory.aggregate(
[
{
$project:
{
cpLocation: { $indexOfCP: [ "$item", "foo" ] },
}
}
]
)

操作返回以下结果

{ "_id" : 1, "cpLocation" : "0" }
{ "_id" : 2, "cpLocation" : "3" }
{ "_id" : 3, "cpLocation" : "4" }
{ "_id" : 4, "cpLocation" : "-1" }
{ "_id" : 5, "cpLocation" : null }
{ "_id" : 6, "cpLocation" : null }

提示

另请参阅

返回

字节中索引

本页内容