当前位置: > 数据库 > MongoDB >

MongoDB的安装与基本操作

时间:2019-02-10 23:55来源:51cto.com 作者:IT

一、关于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 //修改监听地址和端口

MongoDB的安装与基本操作

systemctl start mongod  //启动服务
netstat -anpt | grep 27017  //查看监听端口

MongoDB的安装与基本操作

mongo   //进库
db.version()    //查看版本好
show dbs;   //查看库
db.getMongo()   //查看连接当前数据库的地址

注:MongDB中的操作命令可以[tab]补全
MongoDB的安装与基本操作

三、MongoDB的基本操作

1、开启多实列

cp -p /etc/mongod.conf /etc/mongod2.conf        //复制配置文件
vi /etc/mongod2.conf    //修改新实列对应的路径和端口

MongoDB的安装与基本操作
MongoDB的安装与基本操作

mkdir -p /data/mongodb/mongo        //创建目录与配置文件中一致
cd /data/mongodb/
touch mongod2.log       //进入mongodb目录中添加日志文件
chmod 777 mongod2.log   //增加权限
mongod -f /etc/mongod2.conf //加载新实列的配置文件

MongoDB的安装与基本操作

mongo --port 27018  //进入新实列对应的库
netstat -ntap | grep mongod     //退出实列查看端口

MongoDB的安装与基本操作

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(进程号) //杀掉进程

(责任编辑:IT)
------分隔线----------------------------