码迷,mamicode.com
首页 > 数据库 > 详细

MongoDB安装与操作大全

时间:2018-09-19 00:33:02      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:高效   insert   模式   inf   vpd   system   复制   多实例   users   

简介

  1. MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
  2. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

特点

  • 面向集合存储,易存储对象类型的数据。
  • 模式自由。
  • 支持动态查询。
  • 支持完全索引,包含内部对象。
  • 支持查询。
  • 支持复制和故障恢复。
  • 使用高效的二进制数据存储,包括大型对象(如视频等)。
  • 自动处理碎片,以支持云计算层次的扩展性。
  • 支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
  • 文件存储格式为BSON(一种JSON的扩展)。
  • 可通过网络访问。
    适用场景
  • 网站数据
  • 缓存
  • 大尺寸、低价值的数据
  • 高伸缩性的场景
  • 用于对象及JSON 数据的存储
  • 高度事务性的系统
  • 传统的商业智能应用
  • 需要SQL 的问题
    一、MongoDB安装
    1、添加yum源

    vim /etc/yum.repos.d/mongodb-org.repo

    [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 list
    yum install mongodb-org -y

    3、编辑配置文件

    vim /etc/mongod.conf #yum 安装的配置文件在/etc下

port: 27017 #监听端口
bindIp: 0.0.0.0 #监听地址
技术分享图片
4、开启服务

systemctl start mongod.service #方法一
mongod -f /etc/mongod.conf #方法二
netstat -anpt | grep 27017 #查看端口

技术分享图片
5、关闭服务

mongod -f /etc/mongod.conf --shutdown #方法一
kill-9 进程号 #方法二

6、进入数据库
技术分享图片
二、多实例操作
1、编辑实例2的配置文件

cd /etc/
cp -p mongod.conf mongod2.conf #复制配置文件
vim mongod2.conf #修改配置文件

 path: /data/mongodb/mongod2.log
 dbPath: /data/mongodb/mongod2
  port: 27018

2、创建日志文件、数据文件存放目录

mkdir -p /data/mongodb/
cd /data/mongodb/
mkdir mongod2
touch mongod2.log
chmod 777 mongod2.log

技术分享图片
3、开启实例2

mongod -f /etc/mongod2.conf

技术分享图片

4、查看端口

netstat -ntap

技术分享图片
四、基本操作命令
#增

//不存在会创建,不建立集合会删除
use mydb;
//插入数据
db.createCollection(‘a‘);
db.a.insert ({"id":1,"name":"zhang1"});
for (var i=2;i<=100;i++)db.a.insert({"id":i,"name":"zhang"+i});

技术分享图片
#查

//查看数据库
show dbs;
//查看集合
show collections;/show tables;

技术分享图片

//查看信息
db.a.find();
//筛选查看
db.a.findOne({"id":3});

技术分享图片

//别名筛选查看
c=db.a.findOne({"id":5});
//查看类型
typeof(c.id);

技术分享图片
#改

//更改
db.users.update({"id":3},{$set:{"name":"tom"}});

技术分享图片
#删

//删除信息
db.a.remove({"id":3});
//删除集合
db.a.drop();
//删除数据库
db.dropDatabase();

技术分享图片
五、导入、导出数据库

首先创建一个school数据库
for (var i=1;i<=100;i++)db.info.insert({"id":i,"name":"zhang"+i});

技术分享图片

//导出
mongoexport -d school -c info -o /opt/school.json #导出整个数据库
mongoexport -d school -c info -q ‘{"id":{$eq:10}}‘ -o /opt/top10.json #有条件的导出数据

技术分享图片

//导入
mongoimport -d abc -c info --file a.json

技术分享图片

六、备份、恢复

//备份
mongodump -d school -o /opt/ #/opt自动按数据库名称建立文件

技术分享图片

//恢复
mongorestore -d aaa --dir=/opt/school #还原的数据库可以不存在

技术分享图片
七、复制数据库

db.copyDatabase("aaa","aaa2") #数据库中内容也会复制

技术分享图片
八、克隆集合

mongo --port 27018 跨实例克隆(在另外的实例中)
db.runCommand({"cloneCollection":"aaa.info","from":"192.168.37.128:27017"})

技术分享图片
九、创建管理用户

use admin
db.createUser({"user":"root","pwd":"123","roles":["root"]})
db.auth("root","123") #显示1,成功

技术分享图片
十、进程管理

db.currentOp()

技术分享图片

MongoDB安装与操作大全

标签:高效   insert   模式   inf   vpd   system   复制   多实例   users   

原文地址:http://blog.51cto.com/13784264/2176888

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!