1. 程式人生 > >MongoDB安裝與操作大全

MongoDB安裝與操作大全

備份 對象類型 pgp sta 非關系數據庫 info 部分 yum 雲計

簡介

  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安裝與操作大全