zoukankan      html  css  js  c++  java
  • 【MongoDB学习之四】索引 聚合 备份与恢复 监控

    环境
      MongoDB 4.0
      CentOS 6.5_x64

    一、索引
    语法
    ensureIndex()方法基本语法格式如下所示:
    >db.COLLECTION_NAME.ensureIndex({KEY:1})
    语法中 Key 值为你要创建的索引字段,1为指定按升序创建索引,如果你想按降序来创建索引指定为-1即可。

    实例
    >db.mycol.ensureIndex({"title":1})
    ensureIndex() 方法中你也可以设置使用多个字段创建索引(关系型数据库中称作复合索引)。
    >db.mycol.ensureIndex({"title":1,"description":-1})

    二、聚合
    语法
    >db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)


    管道
    管道在Unix和Linux中一般用于将当前命令的输出结果作为下一个命令的参数。
    MongoDB的聚合管道将MongoDB文档在一个管道处理完毕后将结果传递给下一个管道处理。管道操作是可以重复的。
    表达式:处理输入文档并输出。表达式是无状态的,只能用于计算当前聚合管道的文档,不能处理其它的文档。
    这里我们介绍一下聚合框架中常用的几个操作:

    $project:修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。
    $match:用于过滤数据,只输出符合条件的文档。$match使用MongoDB的标准查询操作。
    $limit:用来限制MongoDB聚合管道返回的文档数。
    $skip:在聚合管道中跳过指定数量的文档,并返回余下的文档。
    $unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。
    $group:将集合中的文档分组,可用于统计结果。
    $sort:将输入文档排序后输出。
    $geoNear:输出接近某一地理位置的有序文档

    三、备份与恢复
    1、备份-mongodump
    mongodump命令脚本语法如下:
    >mongodump -h dbhost -d dbname -o dbdirectory
    -h:
    MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
    -d:
    需要备份的数据库实例,例如:test
    -o:
    备份的数据存放位置,例如:c:datadump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。

    语法 描述 实例
    mongodump 默认在bin目录下创建dump目录备份
    mongodump --host HOST_NAME --port PORT_NUMBER 该命令将备份所有MongoDB数据 mongodump --host w3cschool.cn --port 27017
    mongodump --dbpath DB_PATH --out BACKUP_DIRECTORY mongodump --dbpath /data/db/ --out /data/backup/
    mongodump --collection COLLECTION --db DB_NAME 该命令将备份指定数据库的集合。 mongodump --collection mycol --db test


    2、恢复-mongorestore
    语法
    mongorestore命令脚本语法如下:
    >mongorestore -h dbhost -d dbname --directoryperdb dbdirectory
    -h:
    MongoDB所在服务器地址
    -d:
    需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
    --directoryperdb:
    备份数据所在位置,例如:c:datadump est,这里为什么要多加一个test,而不是备份时候的dump,读者自己查看提示吧!
    --drop:
    恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!
    mongorestore不加参数 默认恢复bin目录下dump下的数据

    四、监控
    1、mongostat 命令
    mongostat是mongodb自带的状态检测工具,在命令行下使用。它会间隔固定时间获取mongodb的当前运行状态,并输出。如果你发现数据库突然变慢或者有其他问题的话,你第一手的操作就考虑采用mongostat来查看mongo的状态。
    启动你的Mongod服务,进入到你安装的MongoDB目录下的bin目录, 然后输入mongostat命令。

    2、mongotop 命令
    mongotop也是mongodb下的一个内置工具,mongotop提供了一个方法,用来跟踪一个MongoDB的实例,查看哪些大量的时间花费在读取和写入数据。 mongotop提供每个集合的水平的统计数据。默认情况下,mongotop返回值的每一秒。
    启动你的Mongod服务,进入到你安装的MongoDB目录下的bin目录, 然后输入mongotop命令

    mongotop 10:后面的10是<sleeptime>参数 ,可以不使用,等待的时间长度,以秒为单位,mongotop等待调用之间。通过的默认mongotop返回数据的每一秒
    mongotop --locks:报告每个数据库的锁的使用中,使用mongotop - 锁
    输出结果字段说明:
    ns:
    包含数据库命名空间,后者结合了数据库名称和集合。
    db:
    包含数据库的名称。名为 . 的数据库针对全局锁定,而非特定数据库。
    total:
    mongod花费的时间工作在这个命名空间提供总额。
    read:
    提供了大量的时间,这mongod花费在执行读操作,在此命名空间。
    write:
    提供这个命名空间进行写操作,这mongod花了大量的时间。

    参考:

    https://www.w3cschool.cn/mongodb/mongodb-mongostat-mongotop.html

  • 相关阅读:
    《Intel汇编第5版》 汇编逆转字符串
    《Intel汇编第5版》 汇编拷贝字符串
    《Intel汇编第5版》 数组求和
    《Intel汇编第5版》 Mov指令
    CABasicAnimation 几种停止的回调
    模拟器SDK路径
    《Intel汇编第5版》 Intel CPU小端序
    《Intel汇编第5版》 汇编减法程序
    Iphone CPU 架构类型
    越狱开发-创建真正的后台程序(Daemon Process)
  • 原文地址:https://www.cnblogs.com/cac2020/p/11338189.html
Copyright © 2011-2022 走看看