一,Mongodb条件操作符
条件操作符用于比较两个表达式并从mongodb集合中获取数据。
MongoDB的条件操作符有:
大于 $gt
小于 $lt
大于等于 $gte
小于等于 $lte
db.collection_name.find({"likes":{$gt:100}})
//查询 likes键的值大于100集合的文档
db.collection_name.find({"likes":{$lt:100}})
//查询likes键的值小于100集合的文档
db.collection_name.find({"likes":{$gte:100}})
//查询likes键的值大于等于100的集合的文档
db.collection_name.find({"likes":{$lte:100}})
//查询likes键的值小于等于100的集合的文档
二,Mongodb $type操作符
$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。
类型 数字
String 2
Object 3
Array 4
Object id 7
Boolean 8
Date 9
Null 10
Regular Expression 11
javaScript 13
Symbol 14
示例
db.collection_name.find({
"title":{$type:2}
})
//获取collection_name集合中的title键值为String的文档数据
三,Mongodb Limit和Skip方法
1,Mongodb Limit()方法
如果需要在MongoDB中读取指定数量的数据记录,可以使用Mongodb的Limit()方法接收一个数字参数,该参数指定从Mongodb中读取的记录条数;
db.collection_name.find().limit(number)
示例:
db.collection_name.find({"title":{$type:2}}).limit(2);
显示查询文档中的两条记录
2,Mongodb Skip()方法
除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接收一个参数作为跳转的记录条数。
db.collection_name.find().limit(number).skip(number);
示例
db.collction_name.find().limit(2).skip(1);
//跳过一条数据,查询文档中的两个数据
四,Mongodb排序
Mongodb sort()方法对数据进行排序,sort()方法可以通过参数指定排序的字段并通过-1和1来指定排序的方式,其中1为升序排序,而-1是用于降序排序。
db.collection_name.find().sort({key:1});
//按键值key升序的方式查询集合中的文档
五,Mongodb索引
索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时,必须扫描集合中的每个文件并选取那些符合查询条件的记录;
这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可能会持续很长时间,对网站不好;
索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种数据结构。
//MongoDB使用ensureIndex()方法来创建索引
db.collection_name.ensureIndex({key:1});
//其中key值为你要创建的索引字段,1为指定按升序创建索引,如果是按降序来创建索引可以指定为-1
实例
db.collection_name.ensureIndex({"title":1})
ensureIndex()方法可以设置使用多个字段创建索引
db.collection_name.ensureIndex({"title":1,'name':-1})
实例:在后台创建索引
db.collection_name.ensureIndex({open:1,title:1},{background:true})
通过在创建索引时加background:true ,让创建索引的工作在后台执行;
六,Mongodb备份(mongodump)与恢复mongorestore
在mongodb中使用mongodump命令来备份MongoDB数据,该命令可以导出所有数据到指定的目录中,mongodump命令可以通过参数指定导出的数据量级转存的服务器。
mongodump -h dbhost -d dbname -o dbdirectory
//-h : mongodb所在服务器地址 :例如:127.0.0.1,当然也可指定端口号127.0.0.1:27017
//-d : 需要备份的数据库实例 : 例如 :test
// -o:备份的数据存放位置 , 例如 :c:\data\dump ,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据
实例
在本地使用27017启动mongod服务,打开命令提示符窗口,进入MongoDB安装目录的bin目录输入命令mongodump
执行命令后,客户端会连接到IP为127.0.0.1端口号为27017的Mongodb服务上,并备份所有的数据到bin/dump目录中;
本人是在E:\dataDump;中创建了一个用于备份数据库的目录;
mongodump -h 127.0.0.1:27017 -d mgt -o E:\dataDump
将mgt实例备份到了E:\dataDump目录中
mongodump命令可选参数列表如下:
七,MongoDB数据恢复
Mongodb使用Mongorestore命令来恢复备份的数据
mongorestore -h <hostname><:port> -d dbname <path>
//--host<:port>, -h<:port> : MongoDB所在服务器地址,默认为:localhost:27017
// --db, -d : 需要恢复的数据库实例:实例:test,当然这个名称也可以和设备时候的不一样,比如test2
//--drop : 恢复的时候,先删除当前数据,然后恢复备份的数据,就是说,恢复后,备份后添加修改的数据都会被删除,慎用!!!
// <path> : mongorestore最后的一个参数,设置备份数据所在位置,例如:c:\data\dump\test
//-- dir : 指定备份的目录
八,MongoDB监控
通过MongoDB监控,了解MongoDB的运行情况,并查看MongoDB的性能;
MongoDB提供了mongostat和mongotop两个命令来监控MongoDB的运行情况;
mongostat命令
mongostat是mongodb自带的状态检测工具,在命令行下使用;在数据库变慢或者其他问题时,第一时间就是通过mongostat命令查看mongodb的状态。启动Mongod服务,进入到你安装的MongoDB目录下的bin目录:
在命令行下运行mongostat
mongotop命令
mongotop也是mongodb下的内置工具,mongotop提供了一个方法,用来跟踪一个MongoDB的实例,查看那些大量时间花费在读取和写入数据,mongodb提供每个集合的水平的统计数据,默认是:mongotop返回值的每一秒,启动mongodb服务,进入到你安装的Mongodb目录下的bin目录:
在命令行下运行mongotop
带参数的实例:
mongotop 10
//10是参数 ,可选,表示等待时间长度,以秒为单位
输出字段说明:
ns:包含数据库命名空间,后者结合了数据库名称和集合
db:包含数据库的名称,名为 . 的数据库针对全局锁定,而非特定数据库
total : mongod花费的时间工作在这个命名空间提供总额。
read :提供了大量的时间,这mongod花费在执行读操作,在此命名空间
write:提供这个命名空间进行写操作,这mongod话了大量的时间