一、关于MongoDB
1、MongoDB简介
MongoDB是一款跨平台、面向文档的数据库。可以实现高性能、高可用性、并且能够轻松扩展。是一个介于关系数据库和非关系数据库之间的产品,在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB也是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。不采用关系模型主要是为了更好的扩展性,MongoDB不再有“行”(row)的概念,其运行方式主要基于两个概念:集合(collection)与文档(document)。
2、MongoDB的特点
MongoDB的特点包括面向集合存储、模式自由、丰富的查询语句和多级索引、复制集机制、易于水平扩展、可插入面向文档存储功能、操作起来比较容易。
MongoDB安装简单,提供了面向文档存储功能,操作起来比较容易。
MongoDB提供了复制、高可用和自动分片功能,如果负载增加,它可以分布在计算机网路中的其他节点上,这就是所谓的分片。
Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可以轻易查询文档中的内嵌的对象及数组。
MongoDB支持各种编程语言:Ruby、Python、java、C++、PHP、C#等多中语言。
3、MongoDB适用领域
MongoDB可以为Web应用提供可拓展的高性能数据存储解决方案。主要使用领域有网站数据、分布式场景、数据缓存和JSON文档格式存储。适用大数据量、高并发、弱事务的互联网应用,其内置的水平扩展机制提供了从几百万到十亿级别的数据处理能力,可以很好的满足Web2.0和移动互联网应用数据存储的要求。
二、MongoDB的安装和基本操作
1、配置yum源仓库
vi /etc/yum.repos.d/CentOS-Base.repo
在最后一行添加MongoDB的yum源模块
[mongodb-org]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
2、安装MongoDB
添加一块桥接网卡保证虚拟机能够访问外网
yum install -y mongodb-org //安装
vi /etc/mongod.conf //修改监听地址和端口
systemctl start mongod //启动服务
netstat -anpt | grep 27017 //查看监听端口
mongo //进库
db.version() //查看版本好
show dbs; //查看库
db.getMongo() //查看连接当前数据库的地址
注:MongDB中的操作命令可以[tab]补全
三、MongoDB的基本操作
1、开启多实列
cp -p /etc/mongod.conf /etc/mongod2.conf //复制配置文件
vi /etc/mongod2.conf //修改新实列对应的路径和端口
mkdir -p /data/mongodb/mongo //创建目录与配置文件中一致
cd /data/mongodb/
touch mongod2.log //进入mongodb目录中添加日志文件
chmod 777 mongod2.log //增加权限
mongod -f /etc/mongod2.conf //加载新实列的配置文件
mongo --port 27018 //进入新实列对应的库
netstat -ntap | grep mongod //退出实列查看端口
2、MongoDB的基本命令
mongo //进入数据库
use mydb; //不存在会创建,不建立集合又会删除
db.createCollection(‘a‘) //创建集合
db.a.insert({"id":1,"name":"zhangsan"}) //向集合a中插入数据
db.a.find() //查询集合a中的所有数据
for(var i=1;i<=100;i++)db.users.insert({"id":i,"name":"jack"+i}) //批量插入数据
a=db.users.findOne({"id":2}) //查找指定记录并赋予别名a
typeof(a.id) //查看属性类型
db.users.count() //统计集合数据量
db.users.update({"id":10},{$set:{"name":"tom"}}) //更改数值
show collections //查看集合
db.a.drop() //删除集合
db.dropDatabase() //删除数据库
3、数据的导入导出
mongoexport -d mydb -c users -o /opt/users.json //导出数据
mongoimport -d mydb -c user1 --file users.json //导入数据
mongoexport -d mydb -c user1 -q ‘{"id":{"$lt":11}}‘ -o /opt/top10.json //条件导出前十行数据
4、数据的备份与恢复
mkdir /backup
mongodump -d mydb -o /backup/ //备份
mongorestore -d mydb --dir=/backup/mydb //恢复
5、复制数据库
db.copyDatabase("mydb","mydb1")
6、克隆集合
mongo --port 27018
db.runCommand({"cloneCollection":"mydb.users","from":"192.168.80.100:27017"})
7、创建管理用户
use admin
db.createUser({"user":"root","pwd":"123","roles":["root"]})
db.auth("root","123")
show users //查看创建的用户
8、进程管理
db.currentOp() //查看进程
db.killOp(进程号) //杀掉进程
原文地址:http://blog.51cto.com/13871362/2343149