您好,登錄后才能下訂單哦!
1、MongoDB簡(jiǎn)介
MongoDB是一款跨平臺(tái)、面向文檔的數(shù)據(jù)庫(kù)。可以實(shí)現(xiàn)高性能、高可用性、并且能夠輕松擴(kuò)展。是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,在高負(fù)載的情況下,添加更多的節(jié)點(diǎn),可以保證服務(wù)器性能。
MongoDB也是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的。不采用關(guān)系模型主要是為了更好的擴(kuò)展性,MongoDB不再有“行”(row)的概念,其運(yùn)行方式主要基于兩個(gè)概念:集合(collection)與文檔(document)。
2、MongoDB的特點(diǎn)
MongoDB的特點(diǎn)包括面向集合存儲(chǔ)、模式自由、豐富的查詢語(yǔ)句和多級(jí)索引、復(fù)制集機(jī)制、易于水平擴(kuò)展、可插入面向文檔存儲(chǔ)功能、操作起來(lái)比較容易。
MongoDB安裝簡(jiǎn)單,提供了面向文檔存儲(chǔ)功能,操作起來(lái)比較容易。
MongoDB提供了復(fù)制、高可用和自動(dòng)分片功能,如果負(fù)載增加,它可以分布在計(jì)算機(jī)網(wǎng)路中的其他節(jié)點(diǎn)上,這就是所謂的分片。
Mongo支持豐富的查詢表達(dá)式。查詢指令使用JSON形式的標(biāo)記,可以輕易查詢文檔中的內(nèi)嵌的對(duì)象及數(shù)組。
MongoDB支持各種編程語(yǔ)言:Ruby、Python、java、C++、PHP、C#等多中語(yǔ)言。
3、MongoDB適用領(lǐng)域
MongoDB可以為Web應(yīng)用提供可拓展的高性能數(shù)據(jù)存儲(chǔ)解決方案。主要使用領(lǐng)域有網(wǎng)站數(shù)據(jù)、分布式場(chǎng)景、數(shù)據(jù)緩存和JSON文檔格式存儲(chǔ)。適用大數(shù)據(jù)量、高并發(fā)、弱事務(wù)的互聯(lián)網(wǎng)應(yīng)用,其內(nèi)置的水平擴(kuò)展機(jī)制提供了從幾百萬(wàn)到十億級(jí)別的數(shù)據(jù)處理能力,可以很好的滿足Web2.0和移動(dòng)互聯(lián)網(wǎng)應(yīng)用數(shù)據(jù)存儲(chǔ)的要求。
1、配置yum源倉(cāng)庫(kù)
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
添加一塊橋接網(wǎng)卡保證虛擬機(jī)能夠訪問(wèn)外網(wǎng)
yum install -y mongodb-org //安裝
vi /etc/mongod.conf //修改監(jiān)聽(tīng)地址和端口
systemctl start mongod //啟動(dòng)服務(wù)
netstat -anpt | grep 27017 //查看監(jiān)聽(tīng)端口
mongo //進(jìn)庫(kù)
db.version() //查看版本好
show dbs; //查看庫(kù)
db.getMongo() //查看連接當(dāng)前數(shù)據(jù)庫(kù)的地址
注:MongDB中的操作命令可以[tab]補(bǔ)全
1、開(kāi)啟多實(shí)列
cp -p /etc/mongod.conf /etc/mongod2.conf //復(fù)制配置文件
vi /etc/mongod2.conf //修改新實(shí)列對(duì)應(yīng)的路徑和端口
mkdir -p /data/mongodb/mongo //創(chuàng)建目錄與配置文件中一致
cd /data/mongodb/
touch mongod2.log //進(jìn)入mongodb目錄中添加日志文件
chmod 777 mongod2.log //增加權(quán)限
mongod -f /etc/mongod2.conf //加載新實(shí)列的配置文件
mongo --port 27018 //進(jìn)入新實(shí)列對(duì)應(yīng)的庫(kù)
netstat -ntap | grep mongod //退出實(shí)列查看端口
2、MongoDB的基本命令
mongo //進(jìn)入數(shù)據(jù)庫(kù)
use mydb; //不存在會(huì)創(chuàng)建,不建立集合又會(huì)刪除
db.createCollection('a') //創(chuàng)建集合
db.a.insert({"id":1,"name":"zhangsan"}) //向集合a中插入數(shù)據(jù)
db.a.find() //查詢集合a中的所有數(shù)據(jù)
for(var i=1;i<=100;i++)db.users.insert({"id":i,"name":"jack"+i}) //批量插入數(shù)據(jù)
a=db.users.findOne({"id":2}) //查找指定記錄并賦予別名a
typeof(a.id) //查看屬性類型
db.users.count() //統(tǒng)計(jì)集合數(shù)據(jù)量
db.users.update({"id":10},{$set:{"name":"tom"}}) //更改數(shù)值
show collections //查看集合
db.a.drop() //刪除集合
db.dropDatabase() //刪除數(shù)據(jù)庫(kù)
3、數(shù)據(jù)的導(dǎo)入導(dǎo)出
mongoexport -d mydb -c users -o /opt/users.json //導(dǎo)出數(shù)據(jù)
mongoimport -d mydb -c user1 --file users.json //導(dǎo)入數(shù)據(jù)
mongoexport -d mydb -c user1 -q '{"id":{"$lt":11}}' -o /opt/top10.json //條件導(dǎo)出前十行數(shù)據(jù)
4、數(shù)據(jù)的備份與恢復(fù)
mkdir /backup
mongodump -d mydb -o /backup/ //備份
mongorestore -d mydb --dir=/backup/mydb //恢復(fù)
5、復(fù)制數(shù)據(jù)庫(kù)
db.copyDatabase("mydb","mydb1")
6、克隆集合
mongo --port 27018
db.runCommand({"cloneCollection":"mydb.users","from":"192.168.80.100:27017"})
7、創(chuàng)建管理用戶
use admin
db.createUser({"user":"root","pwd":"123","roles":["root"]})
db.auth("root","123")
show users //查看創(chuàng)建的用戶
8、進(jìn)程管理
db.currentOp() //查看進(jìn)程
db.killOp(進(jìn)程號(hào)) //殺掉進(jìn)程
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。