Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

$indexOfCP(集計)

項目一覧

  • 定義
  • 動作
$indexOfCP

バージョン 3.4 で追加

string から部分文字列を検索し、UTF-8 コード ポイント を返します 最初の出現のインデックス(ゼロベース)。部分文字列が見つからない場合は、 -1が返されます。

$indexOfCPには次の演算子式の構文があります。

{ $indexOfCP: [ <string expression>, <substring expression>, <start>, <end> ] }
フィールド
タイプ
説明
<string>
string

に変換される限り、任意の有効な stringを指定できます。式の詳細については、「式 」を参照してください。

string 式がnullの値に解決されるか、欠落しているフィールドを参照する場合、 $indexOfCPnullを返します。

string 式が string またはnullに解決されず、欠落しているフィールドを参照しない場合は、 $indexOfCPはエラーを返します。

<substring>
string
に変換される限り、任意の有効な stringを指定できます。式の詳細については、「式 」を参照してください。
<start>
integer

任意。検索の開始インデックス位置を指定する整数、または整数で表せる数値(2.0など)。負でない整数に変換される任意の有効なを指定できます。

指定しない場合、検索の開始インデックス位置は文字列の先頭になります。

<end>
integer

任意。 検索の終了インデックス位置を指定する整数、または整数で表せる数値( 2.0など)。 負でない整数に変換される任意の有効なを指定できます。 <end>インデックス値を指定する場合は、 <start>インデックス値も指定する必要があります。それ以外の場合、 $indexOfCP<end>値ではなく<start>インデックス値として<end>値を使用します。

指定しない場合、検索の終了インデックス位置は文字列の末尾になります。

<substring expression><string expression>内で複数回見つかった場合、 $indexOfCPは開始インデックス位置から見つかった最初の<substring expression>のインデックスを返します。

$indexOfCPnull を返します。

  • <string expression>が null の場合、または

  • <string expression> が入力ドキュメント内の存在しないフィールドを参照している場合。

$indexOfCP は以下の場合エラーを返します。

  • <string expression>が string ではなく null でない場合、または

  • <substring expression>が null または string ではなく、入力ドキュメントに存在しないフィールドを参照する場合、または

  • <start> または <end> が負の整数(または -5.0 のように負の整数として表せる値)の場合。

$indexOfCP-1 を返します。

  • 部分文字列が<string expression>で見つからない場合、または

  • <start><end>より大きい数値の場合、または

  • <start>が string のバイト長よりも大きい数値の場合。

結果
{ $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

以下のドキュメントを持つinventoryコレクションを検討してください。

{ "_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演算子を使用して、各item string に string 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 }

Tip

以下も参照してください。

戻る

$indexOfBytes

項目一覧