CentOS 7下MongoDB 3.6 的安裝及基本操作

來源:互聯網
上載者:User

標籤:目錄   yum   json格式   可擴充   設定檔   emc   _id   節點   恢複   

一、MongoDB簡介
  1. MongoDB是一款跨平台、面向文檔的資料庫,可以實現高效能,高可用性,並且能夠輕鬆擴充。MongoDB 是由C++語言編寫的,是一個基於分布式檔案儲存體的開來源資料庫系統。
    在高負載的情況下,添加更多的節點,可以保證伺服器效能。MongoDB可以為Web應用提供可擴充的高效能資料儲存解決方案。

  2. MongoDB是非關聯式資料庫當中功能最豐富,最像關聯式資料庫的。不採用關聯式模式主要是為了獲得更好的擴充性,MongoDB不再有“行”的概念,其運行方式主要基於兩個概念:集合(collection)和文檔(document)。
  3. MongoDB 旨在為WEB應用提供可擴充的高效能資料儲存解決方案。

  4. MongoDB 將資料存放區為一個文檔,資料結構由索引值(key=>value)對組成。MongoDB 文檔類似於 JSON 對象。欄位值可以包含其他文檔,數組及文檔數組。

MongoDB主要特點

  1. MongoDB安裝簡單,提供了面向文檔儲存的功能,操作起來比較簡單和容易。
  2. MongoDB提供了複製、高可用性和自動分區功能。如果負載增加,它可以分布在電腦網路中的其他節點,這就是所謂的分區。
  3. Mongo支援豐富的查詢運算式。查詢指令使用JSON形式的標記,可輕易查詢文檔中內嵌的對象及數組。
  4. MongoDB支援各種程式設計語言:Ruby、Python、Java、C++、PHP、C#等多種語言。二、MongoDB 3.6的安裝實驗步驟(1)部署 yum源倉庫
    vim /etc/yum.repos.d/mongod-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)Yum安裝

yum install mongodb-org -y

### (3).編輯MongoDB設定檔並啟動其服務

vim /etc/mongod.conf
bindIp: 0.0.0.0 #監聽地址
port: 27017 #監聽連接埠

systemctl start mongod.service #開啟服務
netstat -anpt | grep 27017 #檢查是否啟動

### (4)串連並訪問MongoDB

/usr/bin/mongo

db.version() #查看版本
3.6.6
show dbs; #查看資料庫
admin 0.000GB
config 0.000GB
local 0.000GB

----------## 三、MongoDB 3.6的基本操作
1.開啟多執行個體(1)複製一份設定檔給第二個執行個體
cp -p /etc/mongod.conf /etc/mongod2.conf## 複製一份設定檔給第二個執行個體
(2)編輯第二個執行個體設定檔和啟動參數
vim /etc/mongod2.conf  ##配置執行個體   path: /data/mongodb/mongod2.log  ##記錄檔位置   dbPath: /data/mongodb/mongo    ##資料位元置   port: 27018      ##不同執行個體的連接埠不同
mkdir -p  /data/mongodb/  ##建立資料檔案夾cd /data/mongodb/mkdir mongo   touch mongod2.log     ##建立記錄檔chmod 777 mongod2.log    ##給予記錄檔許可權 
(3)啟動第二個執行個體
mongod -f /etc/mongod2.conf   ##開啟第二份執行個體mongo --port 27018     ##進入資料庫
2.基本操作
## 建立資料庫 ,不存在會建立,不建立集合又會刪除> use mydb;  switched to db mydb ##建立集合> db.createCollection(‘a‘) { "ok" : 1 } ## 在集合中插入資料> db.a.insert({"id":1,"name":"zhangsan"}) WriteResult({ "nInserted" : 1 })## 查看集合中的資料> db.a.find()  { "_id" : ObjectId("5b4c54bc8a4352592ecc288f"), "id" : 1, "name" : "zhangsan" }##尋找指定記錄並賦予別名a,查看屬性類型> b=db.a.findOne({"id":1}){    "_id" : ObjectId("5b4c54bc8a4352592ecc288f"),    "id" : 1,    "name" : "zhangsan"}> typeof(b.id)number   ##更改資料> db.a.update({"id":1},{$set:{"name":"tom"}})  WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.a.find(){ "_id" : ObjectId("5b4c54bc8a4352592ecc288f"), "id" : 1, "name" : "tom" }##查看集合> show collections  a##刪除集合> db.a.drop()   true##刪除資料庫> db.dropDatabase() { "dropped" : "mydb", "ok" : 1 }##複製資料庫> db.copyDatabase("mydb","mydb1")  { "ok" : 1 }> show dbs;admin   0.000GBconfig  0.000GBlocal   0.000GBmydb    0.000GBmydb1   0.000GB
3.匯入匯出資料
  • mongoexport命令可以把一個collection匯出成JSON格式或CSV格式的檔案,可以通過參數指定匯出的資料項目,也可以根據指定的條件匯出資料。
  • mongoimport命令可以把一個特定格式檔案中的內容匯入到指定的collection中。該工具可以匯入SON格式或CSV格式的檔案。
(1)建立100個資料
> use kgc;switched to db kgc> for(var i=1;i<=100;i++)db.users.insert({"id":i,"name":"jack"+i})WriteResult({ "nInserted" : 1 })> db.users.count()100
(2)進行匯入與匯出操作
#匯出操作[[email protected] ~]# mongoexport -d kgc -c users -o /opt/users.json2018-07-16T16:36:30.395+0800    connected to: localhost2018-07-16T16:36:30.407+0800    exported 100 records#查看匯出的檔案[[email protected] ~]# head -n 3 /opt/users.json {"_id":{"$oid":"5b4c589f43705395b9afe284"},"id":1.0,"name":"jack1"}{"_id":{"$oid":"5b4c589f43705395b9afe285"},"id":2.0,"name":"jack2"}{"_id":{"$oid":"5b4c589f43705395b9afe286"},"id":3.0,"name":"jack3"}```
#匯入操作[email protected] ~]# mongoimport -d kgc -c user1 --file /opt/users.json2018-07-16T16:38:13.615+0800    connected to: localhost2018-07-16T16:38:13.635+0800    imported 100 documents#查看匯入的資料集合> use kgc;switched to db kgc> show collectionsuser1users> exitbye
#條件匯出操作[[email protected] ~]# mongoexport -d kgc -c user1 -q ‘{"id":{"$eq":10}}‘ -o /opt/top10.json2018-07-16T16:40:28.912+0800    connected to: localhost2018-07-16T16:40:28.915+0800    exported 1 record
  • -d:指明資料庫的名字
  • -c:指明collection的名字
  • -f :指明要匯出那些列
  • -o:指明要匯出的檔案名稱
  • -q:指明匯出資料的過濾條件
4.備份與恢複(1)備份

在MongoDB中可以使用 mongodump 命令來備份資料,該命令可以匯出所有資料到指定目錄中。

[[email protected] ~]# mkdir /opt/backup #建立備份檔案夾[[email protected] ~]# mongodump -d kgc -o /opt/backup/2018-07-16T16:44:47.254+0800    writing kgc.user1 to 2018-07-16T16:44:47.254+0800    writing kgc.users to 2018-07-16T16:44:47.256+0800    done dumping kgc.user1 (100 documents)2018-07-16T16:44:47.256+0800    done dumping kgc.users (100 documents)
(2)恢複

MongoDB使用mongorestore命令來恢複備份的資料

mongorestore -d kgc2 --dir=/backup/kgc  ##恢複
5. 複製集合

在MongoDB中可以將資料庫中的集合進行複製。這裡將kgc資料庫中的user1集合複製到另外一個執行個體。

(1)先查看MongoDB開啟的執行個體
[[email protected] ~]# netstat -ntap | grep mongodtcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      1121/mongod         tcp        0      0 0.0.0.0:27018           0.0.0.0:*               LISTEN      10145/mongod  
(2)進入第二個執行個體27018連接埠
[[email protected] ~]# mongo --port 27018    ##進入另一個執行個體> db.runCommand({"cloneCollection":"kgc.user1","from":"192.168.113.175:27017"}){ "ok" : 1 }> show dbsadmin   0.000GBconfig  0.000GBkgc     0.000GBlocal   0.000GB> use kgcswitched to db kgc> show collections   #查看27018連接埠執行個體的集合user1## 完成複製
7.進程管理

管理員可以對MongoDB進程進行管理和控制。
查看當前正在啟動並執行進程的命令為:db.currentOp()。
終止正在啟動並執行高消耗資源的進程管理的進程命令為:db.killOp(opid)。

CentOS 7下MongoDB 3.6 的安裝及基本操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.