MongoDB聚合運算符:$trim
文章目錄
- MongoDB聚合運算符:$trim
- 語法
- 使用
- 空白字符
- 舉例
$trim
用來刪除字符串開頭和結尾的空白字符(包括空值)或指定字符。
語法
{ $trim: { input: <string>, chars: <string> } }
input
:要修剪的字符串。參數可以是任何能解析為字符串的。chars
:可選字段。要從input
中修剪的字符。可以是任何能解析為字符串的表達式。$trim
操作符會將字符串分解為單個UTF代碼點,以便進行修剪。如果未指定,$trim
會刪除空白字符,包括空字符。
使用
- 缺省情況下,$trim`移除輸入字符串兩邊的空格和空字符,如:
{ $trim: { input: " \n good bye \t " } }
結果為:“good bye”
- 可以使用
chars
指定其他要移除的字符,下面的例子移除輸入字符串兩邊以g
或e
開始的字符串,但是因為字符串是空格開始的,所以左邊沒有字符被移除。
{ $trim: { input: " ggggoodbyeeeee", chars: "ge" } }
結果:" ggggoodby"
- 也可以通過指定空格和其他字符來替代缺省的字符,下面的例子就是移除掉輸入字符串中以空格、字符g或d開頭的字符
{ $trim: { input: " ggggoodbyeeeee", chars: " ge" } }
結果:“oodby”
空白字符
缺省情況下,$trim
移除一下空格,包括空字符:
|Unicode|轉義序列|描述|
|-|-|
|U+0000|‘0’|空字符|
|U+0020|’ '|空格|
|U+0009|‘t’|水平制表符|
|U+000A|‘n’|換行符|
|U+000B|‘v’|垂直制表符|
|U+000C|‘f’|分頁符|
|U+000D|‘r’|回車符|
|U+00A0| |不間斷空格|
|U+1680| |奧格姆空格標記|
|U+2000| |半身空鉛|
|U+2001| |正方空鉛|
|U+2002| |半方空位|
|U+2003| |字元的正方空位|
|U+2004| |三分之一全方空格|
|U+2005| |四分之一全方空格|
|U+2006| |六分之一全方空格|
|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 }
下面的聚合操作使用$trim
運算符移除description
字段兩邊開頭的空格:
db.inventory.aggregate([{ $project: { item: 1, description: { $trim: { input: "$description" } } } }
])
操作返回下面的結果:
{ "_id" : 1, "item" : "ABC1", "description" : "product 1" }
{ "_id" : 3, "item" : "XYZ1", "description" : null }
{ "_id" : 2, "item" : "ABC2", "description" : "product 2 \n The product is in stock." }