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

$substr(集計)

項目一覧

  • 定義
  • 動作
$substr

バージョン3.4以降では非推奨: $substrは現在$substrBytesのエイリアスです。

指定したインデックス位置から始まり、指定した文字数を含む文字列の部分文字列を返します。インデックスは 0 から始まります。

$substr の構文は次のとおりです。

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

引数には、1 番目の引数が文字列になり、2 番目と 3 番目の引数が整数になる限り、 任意の有効な式を使用できます。式について詳しくは、「式演算子」をご覧ください。

<start> が負の数の場合、 $substrは空のstring "" を返します。

<length>が負の数の場合、 $substrは指定されたインデックスから始まり、string の残りの部分を含む部分文字列を返します。

$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

項目一覧