MongoDB聚合运算符:$trim

server/2024/12/5 4:03:29/

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指定其他要移除的字符,下面的例子移除输入字符串两边以ge开始的字符串,但是因为字符串是空格开始的,所以左边没有字符被移除。
{ $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." }

http://www.ppmy.cn/server/41740.html

相关文章

Go 阻塞

阻塞 在Go语言中&#xff0c;阻塞通常指的是一个goroutine&#xff08;轻量级线程&#xff09;在等待另一个goroutine完成操作&#xff08;如I/O操作、channel通信等&#xff09;时&#xff0c;暂时停止执行的现象。Go语言提供了多种同步和通信机制&#xff0c;可以用于实现阻…

linux系统修改网卡名称

说明&#xff1a; 因操作过程需要停用网卡&#xff0c;导致ssh远程连接不上&#xff0c;需要控制台登录操作。 测试环境&#xff1a; CentOS7.9、8.2虚拟机 Suse15 SP4虚拟机 操作步骤&#xff1a; 方法一&#xff1a; 1、 查看网卡当前名称及状态 ip a2、 将网卡状态从启用…

docker镜像容器常用命令

常用基础命令1、docker info #查看docker版本等信息 2、docker search jenkins #搜索jenkins镜像 3、docker history nginx #查看镜像中各层内容及大小,每层对应的dockerfile中的一条指令。 4、docker network ls #显示当前主机上的所有网络 5、docker logs nginx …

c++ vector容器

在C中&#xff0c;vector 是一个动态数组&#xff0c;它可以根据需要自动增长和缩小。以下是对vector的基本概念和常用操作的详细解释&#xff1a; vector基本概念 vector 是一个模板类&#xff0c;它提供了对动态数组的封装。你可以用它来存储任何类型的对象&#xff0c;并自…

Mysql-几何类型-POINT

在MySQL中&#xff0c;地理空间数据类型和功能被称为GIS&#xff08;Geographic Information System&#xff0c;地理信息系统&#xff09;。MySQL支持几种不同的空间数据类型&#xff0c;包括点&#xff08;POINT&#xff09;、线&#xff08;LINESTRING&#xff09;、多边形&…

Spring的表达式语言(SpEL)使用

Spring表达式语言&#xff08;Spring Expression Language&#xff0c;简称SpEL&#xff09;是Spring框架提供的一种强大的表达式语言&#xff0c;它在Spring 2.0版本引入。SpEL的设计灵感来源于传统的EL&#xff08;Expression Language&#xff09;&#xff0c;即JSP中的表达…

基于ChatGPT 和 OpenAI 模型的现代生成式 AI

书籍&#xff1a;Modern Generative AI with ChatGPT and OpenAI Models: Leverage the capabilities of OpenAIs LLM for productivity and innovation with GPT3 and GPT4 作者&#xff1a;Valentina Alto 出版&#xff1a;Packt Publishing 书籍下载-《基于ChatGPT 和 Op…

vue3+ts(<script setup lang=“ts“>)刷新页面后保持下拉框选中效果

效果图&#xff1a; 代码&#xff1a; <template><div class"app-layout"><div class"app-box"><div class"header"><div class"header-left"></div><div class"title">室外智…