• MongoDb语法


    #查看当前都有哪些数据库 > show dbs;

    #查看都有哪些集合 > show collections

     #使用insert方法插入文档,以{}包注,文档是以键值对出现的,必须成对设置 > db.user.insert({"uid":1,"name":"luotianshuai","age":18,"salary":1})

    2、查询

    #通过find()方法进行查询

    • db.user.find()

    删除文档

    1、查询所有

    #db.user.find() 如果括号内不加任何条件那么默认是显示所有的文档

    2、查询条件

    > db.user.find({"uid":1}) #这里指定条件 { "_id" : ObjectId("575f039f0c73a5a96e8f7c8f"), "uid" : 1, "name" : "luotianshuai", "age" : 18, "salary" : 1 }

    3、删除文档

    > db.user.remove({"uid":1}) WriteResult({ "nRemoved" : 1 })  #当removed为1的时候说明删除成功

    4、清空集合

    > db.user.remove({}) WriteResult({ "nRemoved" : 19 })

    5、删除集合

    > db.user.drop() true  #如果返回true说明删除成功

    Mongo 进阶使用,分组操作

    db.collection.aggregate([array]);

    array可是是任何一个或多个操作符。

    group和match的用法,使用过sqlserver,group的用法很好理解,根据指定列进行分组统计,可以统计分组的数量,也能统计分组中的和或者平均值等。

    group之前的match,是对源数据进行查询,group之后的match是对group之后的数据进行筛选;

    同理,sort,skip,limit也是同样的原理;

    1 {_id:1,name:"a",status:1,num:1} 2 {_id:2,name:"a",status:0,num:2} 3 {_id:3,name:"b",status:1,num:3} 4 {_id:4,name:"c",status:1,num:4} 5 {_id:5,name:"d",status:1,num:5}

    以下是示例:

    应用一:统计name的数量和总数;

    db.collection.aggregate([

      {$group:{_id:"$name",count:{$sum:1},total:{$sum:"$num"}}

    ]);

    应用二:统计status=1的name的数量;

    db.collection.aggregate([

      {$match:{status:1}},

      {$group:{_id:"$name",count:{$sum:1}}}

    ]);

    应用三:统计name的数量,并且数量为小于2的;

    db.collection.aggregate([

      {$group:{_id:"$name",count:{$sum:1}},

      {$match:{count:{$lt:2}}}

    ]);

    应用四:统计stauts=1的name的数量,并且数量为1的;

    db.collection.aggregate([

      {$match:{status:1}},

      {$group:{_id:"$name",count:{$sum:1}}},

      {$match:{count:1}}

    ]);

    多列group,根据name和status进行多列

    db.collection.aggregate([

      {$group:{_id:{name:"$name",st:"$status"},count:{$sum:1}}}

    ]);

    $project该操作符很简单,

    db.collection.aggregate([

      {$project:{name:1,status:1}}

    ]);

    结果是,只有_id,name,status三个字段的表数据,相当于sql表达式 select _id,name,status from collection

    $unwind

    这个操作符可以将一个数组的文档拆分为多条文档,在特殊条件下有用,本人暂没有进行过多的研究。

    以上基本就可以实现大部分统计了,group前条件,group后条件,是重点。

    ECharts

    一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。

    教程和官网文档地址

    http://www.echartsjs.com

    封装饼图方法

    //定义绘图方法

        function show_source(dname,data){

            //初始化echarts,在data_summary内部绘图

            var source_chart = echarts.init(document.getElementById('data_summary'));

            //定义绘图配置

            var source_option = {

                //悬停提示配置

                tooltip:{

                    //定义鼠标

                    trigger:'item',

                    //显示数据格式

                    formatter:"{b}:{d}%"

                },

                //传递数据 传入来源名称

                legend:{

                    data:dname

                },

                //传递具体数据

                series:[{

                    //指定绘图类型

                    type:'pie',

                    //具体数据

                    data:data

                }]

            }

            //将配置文件和绘图对象结合

            source_chart.setOption(source_option);

        }

    Mongodb 进阶使用

    模糊查询忽略大小写敏感

    使用options参数指定值为 i

    #在find()方法中,如果指定第二个参数options 为 i ,则忽略大小写

             = db.platform.find({'name':{'$regex':str(keyword),'$options':'i'}}).sort([('rank',1)])

    Mongodb 进阶使用

    模糊查询

    原生sql  db.news.find({'title':/123/})

    注意不要加引号,否则就是精准匹配

    pymongo

    db.news.find({'xxx':{'$regex':'xxx'}})

    第二种方法(扩展)

    使用re模块

    import re

    db.news.find({'xxx':re.compile('xxx')})

  • 相关阅读:
    VisionPro CogCreateCircleTool工具
    VisionPro CogPDF417Tool工具
    VisionPro CogBarcodeTool工具
    VisionPro Cog2DSymbolVerifyTool工具
    VisionPro Cog2DSymbolTool工具 读码工具
    VisionPro CogToolBlock输入输出终端
    VisionPro CogCompositeColorMatchTool
    VisionPro CogColorSegmenterTool
    VisionPro CogColorMatchTool
    VisionPro CogColorExtractorTool工具功能
  • 原文地址:https://www.cnblogs.com/weifeng-888/p/10828400.html
Copyright © 2020-2023  润新知