$rtrim(集計)
定義
$rtrim
string の末尾から、null を含む空白文字または指定した文字を除きます。
$rtrim
の構文は次のとおりです。{ $rtrim: { input: <string>, chars: <string> } } $rtrim
は、次のフィールドを持つドキュメントを取得します。フィールド説明input
削除する string。 引数は、string に変換されるなら、どのような有効な式でも使用できます。 式の詳細については、「式演算子 」を参照してください。chars
動作
デフォルトでは、
$rtrim
は、入力 string の末尾から null 文字を含む空白を削除します。例結果{ $rtrim: { input: " \n good bye \t " } }
" \n good bye"
chars
フィールドを使用して、削除するデフォルトの文字を上書きできます。たとえば、次の例では、入力stringの末尾から任意の
g
とe
を削除します。 入力は空白で終わるので、どちらの文字も string の末尾から削除することはできません。例結果{ $rtrim: { input: "ggggoodbyeeeee ", chars: "ge" } }
"ggggoodbyeeeee "
削除するデフォルトの文字をオーバーライドする場合は、削除する空白文字を
chars
フィールドに明示的に含めることができます。たとえば、次の例では、入力stringの末尾から任意のスペースまたは
e
を削除します。例結果{ $rtrim: { input: " ggggoodbyeeeee ", chars: "e " } }
" ggggoodby"
空白文字
デフォルトでは、 $rtrim
により、null 文字を含む次の空白が削除されます。
Unicode | エスケープ シーケンス | 説明 |
---|---|---|
U+0000 | '0' | Null 文字 |
U+0020 | ' ' | スペース |
U+0009 | 't' | Horizontal tab |
U+000A | 'n' | 改行 |
U+000B | 'v' | 垂直タブ |
U+000C | 'f' | フォーム フィード |
U+000D | 'r' | キャリッジ リターン |
U+00A0 | 改行なしスペース | |
U+1680 | Ogham スペース マーク | |
U+2000 | En quad | |
U+2001 | Em quad | |
U+2002 | En space | |
U+2003 | Em space | |
U+2004 | Three-per-em space | |
U+2005 | Four-per-em space | |
U+2006 | Six-per-em space | |
U+2007 | 図のスペース | |
U+2008 | 句読点スペース | |
U+2009 | 半角スペース | |
U+200A | ヘア スペース |
例
以下のドキュメントを持つinventory
コレクションを検討してください。
{ "_id" : 1, "item" : "ABC1", quarter: "13Q1", "description" : " product 1" } { "_id" : 2, "item" : "ABC2", quarter: "13Q4", "description" : "product 2 \n The product is in stock. \n\n " } { "_id" : 3, "item" : "XYZ1", quarter: "14Q2", "description" : null }
次の操作では、 $rtrim
演算子を使用して、 description
フィールドから末尾の空白を削除します。
db.inventory.aggregate([ { $project: { item: 1, description: { $rtrim: { input: "$description" } } } } ])
この操作は次の結果を返します。
{ "_id" : 1, "item" : "ABC1", "description" : " product 1" } { "_id" : 2, "item" : "ABC2", "description" : "product 2 \n The product is in stock." } { "_id" : 3, "item" : "XYZ1", "description" : null }