IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MongoDB使用$project投射表达式查询 -> 正文阅读

[大数据]MongoDB使用$project投射表达式查询


$project为投射查询 ,即将一个数据结果映射为另一个结果 过程中可以对某些数据进行修改 控制其最终显示的结果。

1、原字段查询

原字段查询,_id-默认显示,0-表示不显示,1-表示显示,如何只是原字段查询和find()一致

# 比如:select userid,price from test
db.test.aggregate(
	{"$project":{
  	  "_id":0,
	  "userid":1,
      "price":1,
    }})

效果:
在这里插入图片描述

2、数学表达式查询

数学表达式查询,类型如下:
{"$add":[expr1,expr2,...,exprN]} #相加
{"$subtract":[expr1,expr2]} #第一个减第二个
{"$multiply":[expr1,expr2,...,exprN]} #相乘
{"$divide":[expr1,expr2]} #第一个表达式除以第二个表达式的商作为结果
{"$mod":[expr1,expr2]} #第一个表达式除以第二个表达式得到的余数作为结果

注意:expr可以为字段也可以为具体数值,可以多个表达式一起使用。

效果:
在这里插入图片描述

3、日期表达查询

日期表达查询:$year,$month,$week,$dayOfMonth,$dayOfWeek,$dayOfYear,$hour,$minute,$second,可以多个组合,实际上就是对字段使用日期函数。

db.test.aggregate(
	{
    "$project":{
        "userid":1,
        "new_year":{
            "$year":"$create_date"
        },
        "day":{
            "$dayOfWeek":"$create_date"
        },
        "month":{
            "$month":"$create_date"
        }
    }
})

效果:
在这里插入图片描述
比如:求时间差:

db.test.aggregate(
	{"$project":{"name":1,"new_minute":{
        "$subtract":[
            {"$minute":new Date()},
            {"$minute":"$create_date"}
        ]
    }}}
)

效果:
在这里插入图片描述

4、字符串表达式查询

常用类型如下:
{"$substr":[自定义字符串|$字段名,起始位置,截取几个字节]}
{"$concat":[expr1,expr2,...,exprN]} #指定的表达式或字符串连接在一起返回,只支持字符串拼接
{"$toLower":expr}
{"$toUpper":expr}

截取字段:

db.test.aggregate( {"$project":{"str":{"$substr":["$price",0,1]}}})

在这里插入图片描述

截取自定义字符串:

db.test.aggregate( {"$project":{"str":{"$substr":["abcdef",1,2]}}})

在这里插入图片描述

拼接字段:

db.test.aggregate( {"$project":{"str":{"$concat":["$userid","1","2"]}}})

在这里插入图片描述

拼接字符串:

db.test.aggregate( {"$project":{"str":{"$concat":["abc","1","2"]}}})

在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-01-29 23:09:15  更:2022-01-29 23:11:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 14:55:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码