db.students.find();
//按性别分组,并显示每组的姓名
db.students.aggregate({
$group:{
  _id:'$sex',
  name:{$push:'$name'}
  }
})
//$$ROOT将整个文档放入数组中
db.students.aggregate({
  $group:{
    _id:'null',
    name:{$push:'$$ROOT'}
  }
})
//按照性别分组,求平均年龄
db.students.aggregate(
  {$group:{_id:'$sex',avg:{$avg:'$age'}}}
)
db.city.find()
//统计出每个country/province下的userid的数量(同一个userid只统计一次)
db.city.aggregate({
  $group:{
    _id:{country:'$country',province:'$province',userid:'$userid'},
    count:{$sum:1}
   }
},
{$group:{
_id:{province:'$_id.province'},
count:{$sum:1}
}})
//向car集合里插入数据
db.car.insertMany([
{carname:'大众',color:'red',price:120},
{carname:'奔弛',color:'bule',price:400000},
{carname:'宝马',color:'green',price:300000},
{carname:'奔弛',color:'red',price:600000},
{carname:'大众',color:'yellow',price:100},
{carname:'大众',color:'yellow',price:120}
])
db.car.find()
//按照carname分类,并将每个分类里的price透视
db.car.aggregate({
  $group:{_id:'$carname',
    money:{$push:'$price'}}
})
//统计出大众车价格有哪些,去重
db.car.aggregate(
  {$group:{_id:{carname:'$carname',price:'$price'}}},

  {$group:{_id:'$_id.carname',money:{$push:'$_id.price'}}},

  {$match:{_id:'大众'}}
)

db.p2p.opinion.find()
//统计每个作者出现的次数,集合名加方括号引号出现22条数据,按照原来方法不加方括号引号会出现20个数据,可能是集合名称不太规范,不要有点
db['p2p.opinion'].aggregate({
  $group:{
    _id:'$author',
  count:{$sum:1}
  }
})
//1.取出前10条,
db.p2p.opinion.aggregate(
  {$limit:10})
//2.过滤出souce=金评媒,并且tags=平台跑路的
db.p2p.opinion.aggregate(
  {$match:{source:'金评媒',tags:{$regex:'.*平台跑路.*'}}}
)
//1.过滤出所有cmt_cnt>=0的,并且title不为空的数据
db.p2p.aggregate(
  {$match:{cmt_cnt:{$gte:'0'},title:{$ne:''}}},
  {$project:{cmt_cnt:1,title:1}}
)
//1.根据所有"author"分组,取出所有title
db.p2p.aggregate(
  {$group:{_id:'$author',money:{$push:'$title'}}}
)
//2.跳过十条取出十条数据,根据$$ROOT找到每条信息的title,author,和itme_pud_time(只显示这三项)
db.p2p.aggregate(
  {$skip:10},
  {$limit:10},
  {$project:{title:1,author:1,item_pub_time:1,_id:0}}
)
//3.过滤出所有cmt_cnt为0的数据,找到所有title,并且找到item_pud_time时间
db.p2p.aggregate(
  {$match:{cmt_cnt:'0'}},
  {$project:{title:1,item_pub_time:1,_id:0}}
)
//4.找到所有url为空的信息,将空的url加上https://www.baidu.com
db.p2p.update({url:''},{$set:{url:'https://www.baidu.com'}},{multi:true})
db.p2p.find({url:'https://www.baidu.com'}).count()
//不操作数据库,用管道只在显示的位置换上新的url
db.p2p.aggregate(
  {$match:{url:''}},
  {$project:{url:'https://www.baidu.com',title:1}}
)
//5.找到所有cmt_cnt为0并且source为金评媒的信息,利用porject只显示title,content
db.p2p.aggregate(
  {$match:{cmt_cnt:'0',source:'金评媒'}},
  {$project:{title:1,content:1,_id:0}}
)
//6.根据source分组,输出属于p2p理财的新闻有多少记录
db.p2p.aggregate(
{$group:{_id:'$source',count:{$sum:1}}},
{$match:{_id:'P2P理财'}}
)
//7.过滤出item_pud_time 2015-12-15之后的信息,输出平台跑路的平台名称
db.p2p.aggregate(
{$match:{item_pub_time:{$gt:'2015-12-15'},tags:{$regex:'平台跑路'}}}
)
//8.根据source分组,找到平台跑路的有多少个
db.p2p.aggregate(
  {$match:{tags:{$regex:'平台跑路'}}},
  {$group:{_id:{source:'$source',tags:'$tags'},count:{$sum:1}}}
//{$match:{_id.tags:{$regex:'平台跑路'}}} 错的
)
//9.过滤出所有p2p理财和金评媒的新闻根据id进行降序排列,找到前3条信息的title
db.p2p.aggregate(
  {$match:{$or:[{source:{$regex:'金评媒'}},{source:{$regex:'P2P理财'}}]}},
  {$sort:{_id:-1}},
  {$limit:3}
)

mongo中常用的增删改查的更多相关文章

  1. Yii2 中常用的增删改查操作总结

    一.新增 1.使用save() $model = new User(); $model->name = 'test'; $model->phone = '13000000000'; $mo ...

  2. 2. MongoDB基本操作 —— 用Mongo.exe操作数据库增删改查

    一.开篇 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由数据库(database).集合(collection).文档对象 ...

  3. Hbase常用操作(增删改查)

    Hbase常用操作(增删改查) [日期:2014-01-03] 来源:Linux社区  作者:net19880504 [字体:大 中 小]     运行Eclipse,创建一个新的Java工程“HBa ...

  4. 一、数据库表中字段的增删改查,二、路由基础.三、有名无名分组.四、多app共存的路由分配.五、多app共存时模板冲突问题.六、创建app流程.七、路由分发.八、路由别名,九、名称空间.十、反向解析.十一、2.x新特性.十二、自定义转换器

    一.数据库表中字段的增删改查 ''' 直接在modules中对字段进行增删改查 然后在tools下点击Run manage.py Task执行makemigrations和migrate 注意在执行字 ...

  5. 详解node + mongoDb(mongoDb安装、运行,在node中连接、增删改查)

    一.序言 好久没写博客了,这次主要聊聊 node 和 mongoDb . 先说明一下技术栈  node + express + mongoose + mongoDb.这篇博客,主要讲述 mongoDb ...

  6. mysql基础之mariadb对表中数据的增删改查

    复习: 查看表:show tables; 创建表:create table 表名(字符类型); 删除表:drop table 表名; 对表的结构进行增删改查: 查看表结构:desc 表名; 修改表-添 ...

  7. MVC模式:实现数据库中数据的增删改查功能

    *.数据库连接池c3p0,连接mysql数据库: *.Jquery使用,删除时跳出框,确定是否要删除: *.使用EL和JSTL,简化在jsp页面中插入的java语言 1.连接数据库 (1)导入连接数据 ...

  8. MVC设计模式((javaWEB)在数据库连接池下,实现对数据库中的数据增删改查操作)

    设计功能的实现: ----没有业务层,直接由Servlet调用DAO,所以也没有事务操作,所以从DAO中直接获取connection对象 ----采用MVC设计模式 ----采用到的技术 .MVC设计 ...

  9. 数据库中简单的增删改查(CRUD)

    一切都是基于数据,而对数据的管理都离不开数据库.最近学到数据库的简单操作,所以写下这篇文章,总结一下学习到的知识.浅陋之处,多多见谅. 补充一下:一直弄不清SQL Server,Mysql ,以及Or ...

随机推荐

  1. 对.zip格式的文件进行解压缩

    //第一个参数就是需要解压的文件,第二个就是解压的目录public static boolean upZipFileDir(File zipFile, String folderPath) { Zip ...

  2. win7电脑蓝牙 耳机

    == services.msc 然后点击确定. 在服务中我们找到关于蓝牙的设置,双击进入. 将启动类型改成自动或手动,确定后就能使用蓝牙啦. == win7电脑蓝牙耳机 记得之前链接耳机的时候 需要下 ...

  3. centos官网下载地址

    CentOS 7官方下载地址:https://www.centos.org/download/ 源自博友的博客:https://blog.csdn.net/yf9595/article/details ...

  4. centos7.4安装redis

    参考连接 https://blog.csdn.net/qq_19399235/article/details/78313633/

  5. ajax 三种数据格式

    1.JSON(格式要正确,可以引jar包操作) servlet代码 package com.hsp.action; import java.io.IOException; import java.io ...

  6. java 实现文件上传下载以及查看

    项目的目录结构 代码  IOUtils.java package cn.edu.zyt.util; import java.io.IOException; import java.io.InputSt ...

  7. 第一次OO阶段性总结

    作业一 在第一次作业发布的时候对这次作业比较掉以轻心,因为之前在暑假的时候上过先导课,对面向对象的编程思想和java的语法都比较熟悉,加上有其他的事物分心,所以到了最后一天才开始着手写代码,轻视作业的 ...

  8. day22:初识面向对象

    1,类可以理解为是一个模子,可以是代码精简,方便增加实例,方便修改,更加规范,能知道具体的属性,方法,但是不知道具体的值 2,对象有具体的值,属性和技能都是根据类规范的 3, 先有类才有对象 4,面向 ...

  9. WebSocket(一)-RFC6455

    1.官方在线 本地下载 参考翻译:gitbook

  10. 解决spring 用@Value注入配置时候出现中文乱码问题

    只要是乱码,很明显需要指定编码格式,为utf-8 <!-- 注解使用properties --> <bean id="configProperties" clas ...