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. Nginx模块 ngx_http_limit_req_module 限制请求速率

    The ngx_http_limit_req_module module (0.7.21) is used to limit the request processing rate per a def ...

  2. git 入门教程之删除文件

    删除文件 回忆一下文件的常见操作,新增文件,修改文件,删除文件等,新增和修改文件都单独讨论过,现在我们来研究一下如何删除文件. 你可能会说删除文件还不简单啊,直接 rm -rf <file> ...

  3. [linux]主机访问虚拟机web服务(CentOS)

    目的为了实现主机和虚拟机的通信,访问虚拟机中架设的web服务.按理说通过虚拟机ip + web服务端口,即可在浏览器访问虚拟机的web服务.但是由于CentOS的防火墙问题,对应web端口无法访问.通 ...

  4. luogu P3952 时间复杂度 模拟

    题目链接 luogu P3952 时间复杂度 题解 直接模拟即可 注意不要直接return 我真是naive ...... 代码 #include<map> #include<sta ...

  5. CSS(八)

    CSS3 transform变换 1.translate(x,y) 设置盒子位移2.scale(x,y) 设置盒子缩放3.rotate(deg) 设置盒子旋转4.skew(x-angle,y-angl ...

  6. js 类数组对象arguments

    function Add() { for (var i = 0; i < arguments.length; i++) { console.log(arguments[i]); } } Add( ...

  7. 子集三种生成方法 java

    增量构造法 public class Main1 { static int A[] = new int[1 << 7]; static int da[] = new int[1<&l ...

  8. (55)Wangdao.com第八天_JavaScript 字符串中使用 \u 输出Unicode字符

    JavaScript中,使用Unicode 需要 \u 进行转义,格式 "\u十六进制" console.log(\u0031); console.log(\u0041); // ...

  9. vue_过滤器: 对要显示的数据进行特定格式化后再显示

    过滤器 对要显示的数据进行特定格式化后再显示 并未改变原本的数据,可是产生新的对应的数据 <!DOCTYPE html> <html lang="en"> ...

  10. [LeetCode] Search in a Binary Search Tree 二叉搜索树中搜索

    Given the root node of a binary search tree (BST) and a value. You need to find the node in the BST ...