zoukankan      html  css  js  c++  java
  • mongo学习- 聚合project操作

    mongodb中聚合project操作,必须和其他的聚合一起使用,它的作用有以下几个:

    1.返回我们想要显示的的字段 {"$project":{"name":1}}

    2.重命名字段 {"$project":{"name2":"$name"}}     $name为原字段,name2为要显示的字段名

    注意:

    (1)如果想将 _id 显示别的名字,必须将 _id隐藏,不然_id还会显示

    (2)如果重命名之后,Mongodb不会记录字段的历史名称,因此该字段如果有索引的前提下,重命名的不会走索引,所以应该尽量在修改字段名称前使用索引。

    3.数学表达式

      求和: db.aaa.aggregate({"$match":{"_id":{"$gte":1}}},{"$project":{"sum":{"$add":["$_id","$money"]},"money":1}})

    (1) $match 匹配条件

    (2)sum 最后要显示的字段名称

    (3)add 求和操作

    (4)["$_id","$money"] 哪几个字段求和

    求差值:db.aaa.aggregate({"$match":{"_id":{"$gte":1}}},{"$project":{"sum":{"$subtract":[{"$add":["$_id","$money"]},"$money"]},"money":1}}) 同上

    乘积:db.aaa.aggregate({"$match":{"_id":{"$gte":1}}},{"$project":{"sum":{"$multiply":[1,2,3]}}})

    除法:db.aaa.aggregate({"$match":{"_id":{"$gte":1}}},{"$project":{"sum":{"$divide":[2,1]}}})

    余数:$mod

    4.日期表达式 只能作用在日期格式的字段上

    $year 年

    $month 月

    $week 星期

    $dayOfWeek 一周的第几天

    $dayOfMonth 一个月的第几天

    $dayOfYear 一年的第几天

    $hour 小时

    $minute 分

    $second 秒

    5.字符串表达式

    $substr 截取字符串,$concat 连接字符串,$toUpper/$toLower 大小写

    6.逻辑表达式

    $cmp:[e1,e2]   -1,0,1

    $cond:[e1,r1,r2]  如果e1 是true,则返回r1,否则返回r2

    $isNull:[e1,e2]  同上

    db.aaaa.aggregate(
    {"$match":{"name":{$exists:false}}},
    {"$project":{name:1,monney:1,"abc":{"$cond":
    {if:{"$gte":["$monney",150]},then:"本人",else:"其他人"}
    }}})

    db.aaaa.aggregate(
    {"$match":{"name":{$exists:false}}},
    {"$project":{"abc":{"name":{"$ifNull":[0,1]}}}})   

  • 相关阅读:
    hibernate持久化框架
    spring之AOP
    spring之bean
    spring之IOC
    pdf文件工具typora
    vsCode写vue项目一键生成.vue模板
    微信小程序瀑布流
    小程序接入阿拉丁
    小程序引入背景图片不显示问题解决
    Mac OS下使用rz和sz
  • 原文地址:https://www.cnblogs.com/anxbb/p/9473035.html
Copyright © 2011-2022 走看看