zoukankan      html  css  js  c++  java
  • mongo中常用的增删改查

    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}
    )

  • 相关阅读:
    单例模式
    Curator Zookeeper分布式锁
    LruCache算法原理及实现
    lombok 简化java代码注解
    Oracle客户端工具出现“Cannot access NLS data files or invalid environment specified”错误的解决办法
    解决mysql Table ‘xxx’ is marked as crashed and should be repaired的问题。
    Redis 3.0 Cluster集群配置
    分布式锁的三种实现方式
    maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令
    How to Use Convolutional Neural Networks for Time Series Classification
  • 原文地址:https://www.cnblogs.com/lutt/p/10731662.html
Copyright © 2011-2022 走看看