$indexOfBytes
¶3.4版的新功能。
在字符串中搜索子字符串的出现,并返回第一次出现的UTF-8字节索引(从零开始)。如果未找到子字符串,则返回-1
。
操作数 | 描述 |
---|---|
<string expression> |
可以是任何有效的表达式,只要它可以解析为字符串即可。有关表达式的更多信息,请参见 表达式。 如果字符串表达式解析为 如果字符串表达式不能解析为字符串, |
<substring expression> |
可以是任何有效的表达式,只要它可以解析为字符串即可。有关表达式的更多信息,请参见 表达式。 |
<start> |
可选整数,指定搜索的起始索引位置。可以是任何可解析为非负整数的有效 表达式。 |
<end> |
可选整数,指定搜索的结束索引位置。可以是任何可解析为非负整数的有效
表达式。如果指定<end> 索引值,则还应指定一个<start> 索引值;否则,$indexOfBytes 使用该<end>
值<start> 而不是该值作为索引<end>
值。 |
<string expression>
$indexOfBytes
null
$indexOfBytes
在文档中不存在的字段上调用,则$indexOfBytes
返回null
。<string expression>
$indexOfBytes
<substring expression>
$indexOfBytes
<start>
或<end>
为负数,则$indexOfBytes
返回错误。<start>
大于<end>
,则$indexOfBytes
返回-1
。<start>
是大于字符串字节长度的数字,则$indexOfBytes
返回-1
。<start>
或<end>
给出的值不是整数,则$indexOfBytes
返回错误。<substring expression>
<string expression>
$indexOfBytes
<substring expression>
一些简短的示例来突出不同的行为:
例 | 结果 |
---|---|
{ $indexOfBytes: [ "cafeteria", "e" ] } |
3 |
{ $indexOfBytes: [ "cafétéria", "é" ] } |
3 |
{ $indexOfBytes: [ "cafétéria", "e" ] } |
-1 |
{ $indexOfBytes: [ "cafétéria", "t" ] } |
5 |
{ $indexOfBytes: [ "foo.bar.fi", ".", 5 ] } |
7 |
{ $indexOfBytes: [ "vanilla", "ll", 0, 2 ] } |
-1 |
{ $indexOfBytes: [ "vanilla", "ll", -1 ] } |
-1 |
{ $indexOfBytes: [ "vanilla", "ll", 12 ] } |
-1 |
{ $indexOfBytes: [ "vanilla", "ll", 5, 2 ] } |
-1 |
{ $indexOfBytes: [ "vanilla", "nilla", 3 ] } |
-1 |
{ $indexOfBytes: [ null, "foo" ] } |
null |