iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >MongoDB中如何操作管道操
  • 742
分享到

MongoDB中如何操作管道操

2023-06-19 12:06:16 742人浏览 薄情痞子
摘要

MongoDB中如何操作管道操,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。$matchmatch中都可以使用,比如获取集合中所有author为”杜甫”的文档,如下:db.

MongoDB中如何操作管道操,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

$match

match中都可以使用,比如获取集合中所有author为”杜甫”的文档,如下:

db.sang_collect.aggregate({$match:{author:"杜甫"}})

我们在实际使用时最好将match还可以用索引

$project

基本用法

$project可以用来提取想要的字段,如下:

db.sang_collect.aggregate({$project:{title:1,_id:0}})

1表示要该字段,0表示不要该字段,也可以对返回的字段进行重命名,比如将title改为articleTitle,如下:

db.sang_collect.aggregate({$project:{"articleTitle":"$title"}})

不过这里有一个问题需要注意,如果原字段上有索引,重命名之后的字段上就没有索引了,因此最好在重命名之前使用索引。

数学表达式

数学表达式可以用来对一组数值进行加减乘除取模,比如我的数据结构如下:

{    "_id" : ObjectId("59f841f5b998d8acc7d08863"),    "orderAddressL" : "ShenZhen",    "prodMoney" : 45.0,    "freight" : 13.0,    "discounts" : 3.0,    "orderDate" : ISODate("2017-10-31T09:27:17.342Z"),    "prods" : [         "可乐",         "奶茶"    ]}

订单的总费用为商品费用加上运费,查询如下:

db.sang_collect.aggregate({$project:{totalMoney:{$add:["$prodMoney","$freight"]}}})

实际付款的费用是总费用减去折扣,如下:

db.sang_collect.aggregate({$project:{totalPay:{$subtract:[{$add:["$prodMoney","$freight"]},"$discounts"]}}})

再来三个无厘头运算,比如计算prodMoney和freight和discounts的乘积:

db.sang_collect.aggregate({$project:{test1:{$multiply:["$prodMoney","$freight","$discounts"]}}})

再比如求freight的商,如下:

db.sang_collect.aggregate({$project:{test1:{$divide:["$prodMoney","$freight"]}}})

再比如用prodMoney取模,如下:

db.sang_collect.aggregate({$project:{test1:{$mod:["$prodMoney","$freight"]}}})

加法和乘法都可以接收多个参数,其余的都接收两个参数。

日期表达式

日期表达式可以从一个日期类型中提取出年、月、日、星期、时、分、秒等信息,如下:

db.sang_collect.aggregate({$project:{"年份":{$year:"$orderDate"},"月份":{$month:"$orderDate"},"一年中第几周":{$week:"$orderDate"},"日期":{$dayOfMonth:"$orderDate"},"星期":{$dayOfWeek:"$orderDate"},"一年中第几天":{$dayOfYear:"$orderDate"},"时":{$hour:"$orderDate"},"分":{$minute:"$orderDate"},"秒":{$second:"$orderDate"},"毫秒":{$millisecond:"$orderDate"},"自定义格式化时间":{$dateToString:{fORMat:"%Y年%m月%d %H:%M:%S",date:"$orderDate"}}}})

执行结果如下:

{    "_id" : ObjectId("59f841f5b998d8acc7d08861"),    "年份" : 2017,    "月份" : 10,    "一年中第几周" : 44,    "日期" : 31,    "星期" : 3,    "一年中第几天" : 304,    "时" : 9,    "分" : 27,    "秒" : 17,    "毫秒" : 342,    "自定义格式化时间" : "2017年10月31 09:27:17"}

week表示本周是本年的第几周,从0开始计。$dateToString是mongoDB3.0+中的功能。格式化的字符还有以下几种:

MongoDB中如何操作管道操  

字符串表达式

字符串表达式中有字符串的截取、拼接、转大写、转小写等操作,比如我截取orderAddressL前两个字符返回,如下:

db.sang_collect.aggregate({$project:{addr:{$substr:["$orderAddressL",0,2]}}})

再比如我将orderAddressL和orderDate拼接后返回:

db.sang_collect.aggregate({$project:{addr:{$concat:["$orderAddressL",{$dateToString:{format:"--%Y年%m月%d",date:"$orderDate"}}]}}})

结果如下:

{    "_id" : ObjectId("59f841f5b998d8acc7d08861"),    "addr" : "NanJing--2017年10月31"}

再比如我将orderAddressL全部转为小写返回:

db.sang_collect.aggregate({$project:{addr:{$toLower:"$orderAddressL"}}})

再比如我将orderAddressL全部转为大写返回:

db.sang_collect.aggregate({$project:{addr:{$toUpper:"$orderAddressL"}}})

逻辑表达式

想要比较两个数字的大小,可以使用$cmp操作符,如下:

db.sang_collect.aggregate({$project:{test:{$cmp:["$freight","$discounts"]}}})

如果第一个参数大于第二个参数返回正数,第一个参数小于第二个则返回负数,也可以利用$strcasecmp来比较字符串(中文无效):

db.sang_collect.aggregate({$project:{test:{$strcasecmp:[{$dateToString:{format:"..%Y年%m月%d",date:"$orderDate"}},"$orderAddressL"]}}})

至于我们之前介绍的ne/gte/lte等操作符在这里一样是适用的。另外还有or、and为例,如下:

db.sang_collect.aggregate({$project:{test:{$and:[{"$eq":["$freight","$prodMoney"]},{"$eq":["$freight","$discounts"]}]}}})

or则表示参数中有一个为true就返回true,$not则会对它的参数的值取反,如下:

db.sang_collect.aggregate({$project:{test:{$not:{"$eq":["$freight","$prodMoney"]}}}})

另外还有两个流程控制语句,如下:

db.sang_collect.aggregate({$project:{test:{$cond:[false,"trueExpr","falseExpr"]}}})

$cond第一个参数如果为true,则返回trueExpr,否则返回falseExpr.

db.sang_collect.aggregate({$project:{test:{$ifNull:[null,"replacementExpr"]}}})

$ifNull第一个参数如果为null,则返回replacementExpr,否则就返回第一个参数。

关于MonGoDB中如何操作管道操问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

--结束END--

本文标题: MongoDB中如何操作管道操

本文链接: https://www.lsjlt.com/news/296103.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MongoDB中如何操作管道操
    MongoDB中如何操作管道操,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。$matchmatch中都可以使用,比如获取集合中所有author为”杜甫”的文档,如下:db....
    99+
    2023-06-19
  • MongoDB中怎么实现管道操作符
    MongoDB中怎么实现管道操作符,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。$group基本操作$group可以用来对文档进行分组,比如我想将订单按照城市进...
    99+
    2023-06-19
  • node.js如何操作MongoDB
    这篇文章将为大家详细讲解有关node.js如何操作MongoDB,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。node.js操作MongoDB时,需要安装mongodb包...
    99+
    2024-04-02
  • MongoDB中的聚合操作与管道使用方法是什么
    在MongoDB中,聚合操作是用于对文档进行数据处理和计算的操作。聚合操作通常通过聚合管道来实现,管道是由一系列操作组成的操作链,每...
    99+
    2024-05-07
    MongoDB
  • 使用管道组合操作
    在 DSS 工作流程中,SQL 管道是一个混合多个后续配方(每个配方都使用相同 SQL 引擎)的过程。然后,可以执行包含这些集成配方(可能是可视配方和“SQL 查询”配方)的单个作业活动。 通常,SQL 查询会转换为关系代数中的表达式,即一...
    99+
    2023-10-22
  • PHP中如何操作MongoDB 数据库
    这期内容当中小编将会给大家带来有关PHP中如何操作MongoDB 数据库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1,连接MongoDB数据库$conn =...
    99+
    2024-04-02
  • Python操作Mongodb
    一 导入 pymongo from pymongo import MongoClient 二 连接服务器 端口号 27017 连接MongoDB连接MongoDB我们需要使用PyMongo库里面的MongoClient,一般来说传入Mong...
    99+
    2023-01-31
    操作 Python Mongodb
  • C# 操作MongoDB
    1 安装MongoDB.Driver2 建立数据库连接 #mongodb://127.0.0.1:27017 MongoClient client = new MongoClient(“连接字符串”); ...
    99+
    2024-04-02
  • MongoDB常用操作
    关系型数据库名词与MongoDB对比:关系数据库 MongoDB Database  DatabaseTable CollectionRow Do...
    99+
    2024-04-02
  • mongodb的写操作
    使用插入数据命令: >insert 需要注意的是,如果插入一文件(现在理解,nosql 类型的db数据不能说是记录了,它是已文件作为单位,而传统型的关系型数据库,我们说是插入一条记录),如果没有带人_...
    99+
    2024-04-02
  • 如何用python 操作MongoDB数据库
    目录一、前言 二、操作 MongoDB 1、安装 pymongo 2、连接 MongoDB 3、选择数据库 4、选择集合 5、插入数据 6、查询 7、更新数据 8、删除 一...
    99+
    2024-04-02
  • 深入了解Python如何操作MongoDB
    目录前言1. 准备工作2. 连接MongoDB3. 指定数据库4. 指定集合5. 插入数据6. 查询7. 计数8. 排序9. 偏移10. 更新11. 删除12. 其他操作前言 Mon...
    99+
    2024-04-02
  • Spring Boot中怎么操作MongoDB
    这期内容当中小编将会给大家带来有关Spring Boot中怎么操作MongoDB,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。新建一个Java项目,pom.xml的内容如...
    99+
    2024-04-02
  • Python怎么操作MongoDB
    这篇文章主要介绍Python怎么操作MongoDB,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 准备工作在开始之前,请确保已经安装好了MongoDB并启动了其服务,并且安装好了Python的PyMongo库。2...
    99+
    2023-06-28
  • java操作mongodb源码
    文章目录 案例一:MongoClient最简单操作1、优缺点2、添加依赖3、源码 案例二:继承MongoRepository1、优缺点2、接口类继承MongoRepository3、ser...
    99+
    2023-09-13
    mongodb java spring boot
  • Java如何操作MongoDB常用API文档
    目录Java操作MongoDB常用API文档1.查询指定字段2.按条件查询3.对查询结果排序4.获取满足条件的前n条数据Java使用MongoDB数据库相关API小记MongDB数据...
    99+
    2024-04-02
  • 如何使用Java操作MongoDB数据库
    如何使用Java操作MongoDB数据库?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。常用的java框架有哪些1.SpringMVC,Spring Web MV...
    99+
    2023-06-14
  • MongoDB中如何实现创建、删除集合操作
    这篇文章给大家分享的是有关MongoDB中如何实现创建、删除集合操作的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。创建集合语法格式db.createCollection(name...
    99+
    2024-04-02
  • MongoDB管理用户的相关操作是什么
    这篇文章给大家介绍MongoDB管理用户的相关操作是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 列出所有用户mongouse admin ...
    99+
    2024-04-02
  • NodeJs Express框架如何操作MongoDB数据库
    这篇文章主要介绍“NodeJs Express框架如何操作MongoDB数据库”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“NodeJs Express框架如何操作MongoDB...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作