继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

MongoDB数据库基础---操作符和方法

startitunderground
关注TA
已关注
手记 58
粉丝 99
获赞 931

一,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话了大量的时间

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP