前言
MongoDB 是一个基于分布式文件存储的数据库。由C++ 语言编写。
MongoDB 将数据存储为一个文档,数据结构由键值(Key->Value)对组成。
MongoDB 文档类似于JSON 对象,字段值可以包含其他文档,数组及文档数组
应用场景
MongoDB 的应用已经渗透到各个领域,比如游戏、物流、电商、内容管理、社交、物联网、视频直播等,比如常用的应用场景有:
◆游戏场景:使用MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新
◆物流场景:使用MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来。
◆社交场景:使用MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能
◆物联网场景:使用MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析
◆视频直播:使用MongoDB 存储用户信息、礼物信息等
Windows安装
MongoDB 提供了可用于32 位和64 位系统的预编译二进制包,可以从MongoDB官网下载安装,MongoDB预编译二进制包下载地址:https://www.mongodb.com/download-center/community
1、找到mongodb安装的bin目录
2、将上面的bin目录添加到环境变量path下保存
Linux安装
从MongoDB官网下载安装,MongoDB 预编译二进制包下载地址:https://www.mongodb.com/download-center/community
1、默认下载路径是到用户目录下的Downloads目录,将其解压:tar -zxvfmongodb-linux-x86_64-4.4.0.tgz
2、将解压后的文件夹移动到/usr/local/的mongodb目录下:mv -r mongodb-linux-x86_64-4.4.0 /usr/local/mongodb
3、配置系统文件profile(sudovi /etc/profile):插入下列内容:export MONGODB_HOME=/usr/local/mongodbexport PATH=\(PATH:\)MONGODB_HOME/bin注意保存后要重启系统配置:source /etc/profile
启动Mongodb
1.Windows启动
cmd终端下执行mongo
mongo
2.Linux启动
cd /usr/local/mongodb/bin
./mongod
界面管理
下载地址:https://www.mongodb.com/download-center/compass
运行解压包中的exe文件,打开界面如下
然后点击connect链接本地运行的mongdb数据库,如果是链接其他服务器请修改上面的地址
常用命令
一、登陆
◆mongo 127.0.0.1 # mongo命令行直接加MongoDB服务的IP地址,使用默认端口27017登陆MongoDB
◆mongo 127.0.0.1:10086 # 打开指定端口10086的MongoDB客户端。
二、数据库级操作
◆show dbs# 查看数据库
◆use test # 使用指定库test,或直接创建数据库test,不过需要插入数据时,使用show dbs才能看到该库
◆show collections # 查看所有数据集
◆db# 查看当前使用的库◆db.dropDatabase() # 删除数据库
三、Collection级操作
◆db.createCollection("user") # 新建collection,效果与使用db.user.insert({"user":"xxx"})类似。
◆db.user.drop() # 删除collection。
◆show collections # 查看所有collection。
◆db.user.renameCollection(“USER") # 重命名collection
◆db.user.remove({name:/mikezhou/}) # 删除集合中符合过滤条件的数据
◆db.user.remove({name:/mikezhou/},1) # 删除符合条件的一条记录
四、Record级的操作
◆db.user.insert({'name':'mikezhou','age':20,'salary':10000}) # 向user插入数据
◆db.user.save({'name':'zhansan','age':30,'salary':13000}) # 向user插入数据并更新数据
◆db.user.find() # 查看集合所有记录
◆db.user.find({"age":26}) # 查找符合条件的记录: 相等
◆db.user.find({salary:{\(gt:7000}}) # 查找符合条件的记录:大于
◆db.user.find({name:/test/}) # 查找符合条件的记录:模糊匹配,如查看名称中包含‘test’的数据
◆db.user.find({name:/^H/}) # 查询name以H打头的数据
◆db.user.find({age:{\)lt:30},salary:{\(gt:6000}}) # 多条件与查询,如查询age小于30,salary大于6000的数据
◆db.user.find({\)or:[{salary:{\(gt:10000}},{age:{\)lt:25}}]}) # 多条件或查询,查询age小于25,或者salary大于10000的记录。五、对查询结果集的操作
◆db.user.find().pretty() # Pretty Print
◆db.user.find().limit(2) # 指定结果集返回条目
◆db.user.find().skip(1) # 查询第一条以外的数据
◆db.user.find().sort({salary:1}) # 对结果集排序: 升序
◆db.user.find().sort({salary:-1}) # 对结果集排序:降序
◆db.user.find().count() # 统计结果集中的记录数量
数据备份
在Mongodb中可以使用mongodump命令来备份MongoDB数据,该命令可以导出所有数据到指定目录中。
mongodump命令脚本语法如下:mongodump -h dbhost -d dbname -o dbdirectory
◆-h:MongDB所在服务器地址,例如:127.0.0.1,也可以指定端口号:127.0.0.1:27017
◆-d:需要备份的数据库实例,例如:test
◆-o:备份的数据存放位置,例如:d:\mongo\backup
数据恢复
mongodb使用mongorestore 命令来恢复备份的数据。语法如下:mongorestore -h dbhost -d dbname --directoryperdb dbdirectory
◆-h:MongoDB所在服务器地址
◆-d:需要恢复的数据库实例,例如:test
◆--directoryperdb:备份数据所在位置,例如:d:\mongo\backup
◆--drop:恢复的时候,先删除当前数据,然后恢复备份的数据。
数据导出
直接导出数据到文件中./bin/mongoexport -d test -c user-o user.json
在导出数据时没有显示指定导出样式,默认导出了JSON格式的数据。如果我们需要导出CSV格式的数据,则需要使用--csv参数:./bin/mongoexport -d test -c user--csv -f _id,name -o user.csv