Python全栈 MongoDB 数据库(Mongo、 正则基础、一篇通)

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
.cn 域名,1个 12个月
简介:


                终端命令:

    在线安装:
        sudo apt-get install mongodb
        默认安装路径 :  /var/lib/mongodb
        配置文件 : /etc/mongodb.conf 
        命令集 : /usr/bin   /usr/local/bin
    下载解压:
        PATH=$PATH:/opt/mongodb.../bin
        export PATH
        将以上两句写入 /etc/rc.local
    备份:
        mongodump -h 主机地址 -d 库名 -o 文件名
    恢复:
        mongorestore -h 主机地址: 端口号 -d 库名 文件路径

    mongod --port  8080        设置端口(默认27017)
    mongo                      进入mongo shell
    quit() exit ctrl+c/z/d     退出mongo shell
    mongostat                  监测速度  (command 命令次数 flushes IO次数 vsize   虚拟内存)
    mongotop                   监测时长 ( ns  数据集合、 total 总时长、 read  读时长 、write 写时长)


                 Mongo命令:

    use   库名                            创建/选择库

    show dbs                              查询库

    db.dropDatabase()                    删除库

    db.createCollection(“集合名”)      创建集合

    db.集合名.insert(...)                创建集合

    show collections                      查询集合

    show tables                              查询集合

    db.getCollection("集合名")                查询集合所在库

    db.集合名.drop()                          删除集合

    db.集合名.renameCollion("新集合名")  重命名集合

    db.集合名.insert({name:"tom"..})         插入文档

    db.集合名.save({name:"tom",...})          插入文档

    db.集合名.insert([{}, {}...])            插入多个文档

    db.集合名.save([{} {}...])                 插入多个文档(加_id键会覆盖原文档)

    db.集合名.find(查找条件,域)               查找文档

    db.集合名.findOne(查找条件,域)        只显示找到的第一条文档

    db.集合名.distinct("集合名")                 查看集合内某个域的取值范围

    db.集合名.remove(query,justOne)        删除指定条件文档(默认false删除所有)

    db.集合名.update(query, update,upert,multi)             修改文档

    db.集合名.find().count()                                 计数统计查询结果文档的个数

    db.集合名.find().pretty()                               将查询结果格式化显示

    db.集合名.find().limit(n)                               显示查找结果的前n条结果

    db.集合名.find().skip(n)                               跳n过前条显示后面的结果 
            
    db.集合名.find().count()                                计数统计查询结果文档的个数

    db.集合名.find().sort({filed:1/-1,...})                排序  1:升序, -1:降序,第项相同按照第项二排序

    db.集合名.find({'域名.下标':内容{_id:0})                   操作组中的某一项

    db.集合名.find({"外域名.内部文档域":内容}, {_id:0})        操作内部文档(Object)的域

    db.集合名.ensureIndex({域:1/-1})                          创建索引(1:正向索引  -1:反向)

    db.集合名.getIndexes()                                    查看某个集合中的索引

    db.集合名.ensureIndex({域:1/-1}},{name:'索引名'})       自定义索引名称

    db.集合名.dropIndex(({域:1/-1})                            删除索引
        
    db.集合名.dropIndex("索引名")                              删除索引

    db.集合名.dropIndexes()                                    删除所有索引(默认_id索引无法删除)

    db.集合名.ensureIndex({域名1:1/-1,域名2:1/-1})          创建符合索引 更节省空间

    db.集合名.find({'数组.下标':值},{_id:0})                   如果对数组创建索引 查找值也属于索引查找

    db.集合名.ensureIndex({域:1/-1},{unique:true})           创建唯一索引

    db.集合名.ensureIndex({域:1/-1},{sparse:true})            创建稀疏索引

    db.createCollection('集合名',{capped:true,size:10000,max:3})  创建固定集合

    比较操作符:
        $eq          等于
        $lt          小于(字符串也可以比较大小)
        $lte         小于等于
        $gt          大于
        $gte         大于等于
        $ne          不等于
        $in          在什么里(in)
        $nin         不在什么里(not in)
    逻辑操作符:
        $and        与
            query内如果多个条件用逗号隔开默认就是and关系
        $or         
        $not        
        $nor        既不也不
    数组操作符:
        $size        只显示指定个size个数的文档]
        $all         查找数组中包含多项的
        $slic        取数组中部分显示,在域(field)中声明

    其他query查询:
        $exists     判断一个域是否存在
        $mod       余数查找
        $type       数据类型查找
    修改操作符:
        $set         修改一个直 不存在则添加
        $unset     删除一个域
        $rename  修改域名
        $setOnInsert 第三个参数为true作为补充插入数据 否则无用
        $inc         加减修改器可以使整数小数正数负数
        $mul        乘法修改器可以使整数小数正数负数
        $min        设置域的值为上线 超过min修改为min
        $max       设置域的值为下线 小于max修改为max
    数组修改符:
        $push            向数组中添加一项
        $pushAll        向数组中添加多项
        $pull             从数组中删除一项
        $pullAll         从数组中删除多项
        $each            对多个值进行逐一操作
        $position      指定插入位置(配合each使用)
        $sort             对数组进行排序(配合each使用)
        $pop             弹出一项(1:弹出第一项 -1:最后一项)
        $addToSet    向数组中添加一项(不允许重复)
    时间类型:ISODate()
        nuw Date()  自动生成当前时间
        Date()        获取当前计算机时间格式字符串
        ISODate()     生成当前时间
        ISODate("2018-01-01 12:12:12")       自定义时间
        ISODate("20180101 12:12:12")         自定义时间
        ISODate("20180101")                  自定义时间
        valueOf()     生成时间戳
        null         如果某个域的值不存在可以设置为null



    修改参数:
        query:       筛选要查找要修改的文档
        update:      将筛选的文档修改为什么内容需要配合修改操作符
        upsert:      bool值  默认false  如果query的文档不存在则不进行任何操作
                      设置为true 如果query和文档不存在 就根据query和update插入新文档
        multi:       bool值  默认false 如果query文档有多条则只修改第一条
                      设置为true 则修改所有符合条件的文档

    查找参数:
        query(条件):
            键值对的形式给出要展示的文档
        field(域):
            以键值对对的形式给出要展示或不展示的域
            0为值不显示该域 1为值显示该域
            如果使用0设置某些域不显示默认其他域显示
            如果使用1设置某些域显示默认其他域不显示
            *_id 只有设置为0才不显示否则默认显示
            除_id以外,其他域必须同时设置0或1

    索引:
        指建立指定键值及所在文档中存储位置的对照清单
        使用索引可以方便我们进行快速查找,减少数据遍历次数,从而提高查找效率
        覆盖索引:
            查找操作需要获取的域,只有索引域没有其他域。
            此时索引表可以直接提供给用户想要的内容,提高查找效率
        唯一索引:
            创建的索引,索引域值无重复,此时可以创建唯一索引
            唯一索引数据结构更加便于查找
        稀疏索引:
            只针对有指定域的文档创建索引表,如果某个文档没有该域则不会插入到索引表中
        索引约束:
            1. 索引表也需要占用一定的磁盘空间
            2. 当数据发生更新时索引表也要随之更新
        综上 : 
            1. 数据量比较大时更适合创建索引,数据量较小时没有必要付出索引代价
            2. 频繁进行查找操作而不是更新删除插入操作,此时更适合使用索引

    固定集合:
        大小固定的集合,称之为固定集合
        插入速度更快,顺序查找更快
        可以控制集合的空间大小
        能够自动淘汰早期数据
        参数:
            capped:true   创建固定集合
            size:10000   固定集合的大小  字节数
            max :1000    表示最多多少条文档


                              正则基础


               Python re模块正则接口详解

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
16天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
103 45
|
21天前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。
|
22天前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第20天】本文探讨了MongoDB Atlas的核心特性、实践应用及对未来云原生数据库的思考。MongoDB Atlas作为云原生数据库服务,具备全球分布、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了实施MongoDB Atlas的最佳实践和职业心得,展望了云原生数据库的发展趋势。
|
17天前
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
29 2
|
24天前
|
存储 NoSQL MongoDB
MongoDB 数据库引用
10月更文挑战第20天
14 1
|
30天前
|
存储 NoSQL MongoDB
基于阿里云数据库MongoDB版,微财数科“又快又稳”服务超7000万客户
选择MongoDB主要基于其灵活的数据模型、高性能、高可用性、可扩展性、安全性和强大的分析能力。
|
29天前
|
存储 NoSQL MongoDB
mongodb的数据库表怎么创建
在此过程中,理解并掌握这些基本操作,是深入探索MongoDB魅力,乃至构建高效数据解决方案的关键所在。通过实践,您将更加深刻地体会到这种随需应变的数据管理模式带来的便利与效率提升。
24 0
|
JavaScript 前端开发 Linux
Python全栈 Web(Ajax JQuery-AJAX 跨域请求)
Flask、Python、Django、框架、服务器、客户端、浏览器、交互、WEB、Python前端、CSS、JAVA、HTML、H5、PHP、JavaScript、JQuery、分布式开发
5231 0
|
JavaScript Linux 应用服务中间件
Python全栈 Web(Ajax JSON JQuery)
Flask、Python、Django、框架、服务器、客户端、浏览器、交互、WEB、Python前端、CSS、JAVA、HTML、H5、PHP、JavaScript、JQuery、分布式开发
2994 0
|
Web App开发 前端开发 JavaScript
Python全栈 Web(jQuery 一条龙服务)
jQuery是一个轻量级的JS库 - 是一个被封装好的JS文件,提供了更为简便的元素操作方式
3270 0