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. Spring Data JPA入门

    1. Spring Data JPA是什么 它是Spring基于ORM框架.JPA规范封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据的访问和操作.它提供了包括增删改查等在内的常用功能, ...

  2. python 几个简单算法详解

    一.冒泡排序 基本思想:它的思路很有特点循环,两两向后比较.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数 ...

  3. Android应用程序MVC框架实例分析

    问题提出:如何优雅地分离出应用程序的状态.用户交互和数据表现?如何通过框架体现工程的高性能.高灵活性.高响应性? MVC定义:model.view.controller三者的有机组合,分别表示:模型. ...

  4. php数组实现根据某个键值将相同键值合并生成新二维数组的方法

    $infos = array( array( 'a' => 36, 'b' => 'xa', 'c' => '2015-08-28 00:00:00', 'd' => '201 ...

  5. C#创建ActiveX

    因为最近的项目可能会用到调用外部设备,读取信息.为了和现有的BS系统兼容,并以较小的代价满足需求,于是想到了使用ActiveX技术(也有人建议使用Silverlight),这技术虽然比较早了,但还是能 ...

  6. python ironicclient源码分析

    ironicclient是一个cli工具,用来和用户交互的. 首先写一个简单的例子,获取ironic所有的node节点: from ironicclient import client if __na ...

  7. Android ble蓝牙问题

    (1)蓝牙回调安卓4.4的蓝牙回调是在异步线程中(不在主线程),若要在蓝牙回调中执行更新界面的操作,记得切换到主线程去操作 (2)三星手机兼容性问题connectGatt()方法在某些三星手机上只能在 ...

  8. [LeetCode] Subdomain Visit Count 子域名访问量统计

    A website domain like "discuss.leetcode.com" consists of various subdomains. At the top le ...

  9. python全栈开发 * mysql * 180828

    一.mysql概述\s 查看当前自己的信息1.mysql就是用于管理我们的文件的一个软件;2.mysql有两个软件: 服务器软件: socket服务端 本地文件操作 解析指令(mysql语句) 客户端 ...

  10. jquery全选 不全选

    <input type="checkbox" id="check">点击 <input type="checkbox" c ...