终端命令:
 
    在线安装:
        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全栈 MongoDB 数据库(Mongo、 正则基础、一篇通)的更多相关文章

  1. Python全栈 MongoDB 数据库(概念、安装、创建数据)

    什么是关系型数据库?           是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,             同时也是一个被组织成一组拥有正式描述性的表格( ...

  2. Python全栈 MongoDB 数据库(聚合、二进制、GridFS、pymongo模块)

    断网了2天  今天补上     聚合操作: 对文档的信息进行整理统计的操作 返回:统计后的文档集合 db.collection.aggregate() 功能:聚合函数,完成聚合操作 参数:聚合条件,配 ...

  3. Python全栈 MongoDB 数据库(数据的修改)

    修改操作符的使用   $set 修改一个域的值,增加一个域   阿哲年龄修改为33 db.class1.update({name:'阿哲'},{$set:{age:33}})   如果sex域不存在则 ...

  4. Python全栈 MongoDB 数据库(数据的查找)

      非关系型数据库和关系型数据库的区别? 不是以关系模型构建的,结构自由 非关系型数据库不保证数据一致性 非关系型数据库可以在处理高并发和海量数据时弥补关系数据库的不足 非关系型数据库在技术上没有关系 ...

  5. 巨蟒python全栈开发数据库前端6:事件onclick的两种绑定方式&&onblur和onfocus事件&&window.onload解释&&小米商城讲解

    1.回顾上节内容(JavaScript) 一.JavaScript概述 1.ECMAScript和JavaScript的关系 2.ECMAScript的历史 3.JavaScript是一门前后端都可以 ...

  6. Python全栈开发之路 【第四篇】:Python基础之函数

    本节内容 函数def: 1.位置参数,默认参数 2.位置参数,关键参数 3.如果参数中出现 *users,传递的参数就可以不再是固定的个数, 传过来的所有元素进行打包成元组 *args,**kwarg ...

  7. Python全栈开发之路 【第七篇】:面向对象编程设计与开发(1)

    本节内容 一.编程范式 编程指的是写程序.敲代码,就是指程序员用特定的语法.数据结构和算法编写的代码,目的是来告诉计算机如何执行任务的. 在编程的世界里最常见的两大流派是:面向过程与面向对象.“功夫的 ...

  8. 巨蟒python全栈开发数据库攻略1:基础攻略

    1.什么是数据库? 2.数据库分类 3.数据库简单介绍 4.安装数据库 5.修改root密码 6.修改字符集 7.sql介绍 8.简单sql操作

  9. 巨蟒python全栈开发数据库前端1:HTML基础

    1.HTML介绍 什么是前端? 前端就是我们打开浏览器的页面.,很多公司都有自己的浏览器的页面,这个阶段学习的就是浏览器界面 比如京东的界面:https://www.jd.com/ 引子 例1 soc ...

随机推荐

  1. Spring通过注解装配Bean

    通过注解实现ServiceImpl业务 一.使用@Component装配Bean 1. 定义类:User 在类上面加@Component注解,在属性上面加@Value值 package com.wbg ...

  2. 用javascript编写简单银行取钱存钱流程(函数)

    const readline = require('readline-sync')//引用readline-sync let arr = [[], []]; //登陆 let add = functi ...

  3. 安装oracle11g时遇到环境不满足最低要求

    在安装oracle11g时出现问题:INS-13001环境不满足最低要求 解决方法:找到下载解压后的文件,依次打开以下文件路径:Oracle11g\database\stage\cvu, 在cvu文件 ...

  4. MySQL 开启事件 使用定时器调用存储过程

      mysql定时器是系统给提供了event,而oracle里面的定时器是系统给提供的job.废话少说,下面创建表:create table mytable (id int auto_incremen ...

  5. free -g 说明

    free -g 说明: free -g -/+ buffers/cache 说明: buffer 写缓存,表示脏数据写入磁盘之前缓存一段时间,可以释放.sync命令可以把buffer强制写入硬盘 ca ...

  6. JavaScript的兼容小坑和调试小技巧

    JavaScript作为一种弱类型编程语言,入门简单,只要稍微注意一下IE方面的兼容性,就可以很好的使用它. 本文主要是对IE兼容的小坑和调试的小技巧进行举例分析,并给出解决方法. 1.var str ...

  7. Android小例子:使用反射机制来读取图片制作一个图片浏览器

    效果图: 工程文件夹: 该例子可供于新手参考练习,如果有哪里不对的地方,望指正>-< <黑幕下的人> java代码(MainActivity.java): package co ...

  8. Redis(八):Redis的复制(Master/Slave)

    Redis的复制(Master/Slave)目录导航: 是什么 能干嘛 怎么玩 复制原理 哨兵模式(sentinel) 复制的缺点 是什么 官网 行话:也就是我们所说的主从复制,主机数据更新后根据配置 ...

  9. For-each Loop,Index++ Loop , Iterator 那个效率更高

    平时在写Java/C# 程序的时候,会写很多的Loop 语句,for() 及 Iterator loop 及Java 8 的foreach Loop, 这些Loop 那种效率最高呢?写个小程序测试一下 ...

  10. 【AD】自己画板的备忘

    快捷键: [Ctrl + M ]计算出两点之间的距离,画电路板时会用到 [Ctrl + Q ]在设定X.Y..等等的地方,快捷键可以公英制快速切换 [shift + 空格键 ]在布线的同时,此快捷键可 ...