一、MongoDB簡介
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比京口網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式京口網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋京口地區(qū)。費用合理售后完善,10年實體公司更值得信賴。1、介紹
1)MongoDB是由C++語言編寫的,是一個基于分布式文件存儲的開源數(shù)據(jù)庫系統(tǒng),也屬于NoSQL。
2)在高負載的情況下,可以添加更多的節(jié)點,可以保證服務器性能。
3)MongoDB旨在為WEB應用提供可擴展的高性能數(shù)據(jù)存儲解決方案。
4)MongoDB將數(shù)據(jù)存儲為一個文檔,數(shù)據(jù)結構由鍵值(key=>value)對組成;MongoDB文檔類似于JSON對象;字段值可以包括其他文檔,數(shù)組及文檔數(shù)組。
2、MongoDB和關系型數(shù)據(jù)庫對比
SQL術語/概念 | MongoDB術語/概念 | 解釋說明 |
database | database | 數(shù)據(jù)庫 |
table | collection | 數(shù)據(jù)庫表/集合 |
row | document | 數(shù)據(jù)記錄行/文檔 |
column | filed | 數(shù)據(jù)字段/域 |
index | index | 索引 |
table joins | 表連接,MongoDB不支持 | |
primary key | primary key | 主鍵,MongoDB自動將_id字段設置為主鍵 |
二、MongoDB安裝
如果安裝epel擴展源,可以安裝MongoDB2.4版本;但是我們要安裝3.0版本,官方提供的源只支持64位系統(tǒng)。
1、搭建yum源
[root@centos ~]# vim /etc/yum.repos.d/mongodb-org-3.0.repo
[mongodb-org-3.0] name=MongoDB Repository baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64 gpgcheck=0 enabled=1 |
注意:若后續(xù)要用yum工具,要改成 enabled=0,即恢復使用原來的yum源了。
2、安裝
[root@centos ~]# yum install -y mongodb-org
注意:下載時候因為是國外的源,有可能會出現(xiàn)下載中斷的情況。
3、修改配置文件
[root@centos ~]# vim /etc/mongod.conf //去掉三處注釋
fork: true pidFilePath: /var/run/mongodb/mongod.pid bindIp: |
4、修改內(nèi)核以及限制參數(shù)
[root@centos ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
[root@centos ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
[root@centos ~]# vim /etc/security/limits.conf //末尾添加
mongod soft nofile 64000 mongod hard nofile 64000 mongod soft nproc 32000 mongod hard nproc 32000 |
5、啟動MongoDB
[root@centos ~]# service mongod start
[root@centos ~]# ls /var/lib/mongo/ //查看生成的文件
journal local.0 local.ns mongod.lock storage.bson _tmp |
注意:若啟動失敗,可以用下面命令啟動,會有錯誤提示信息
[root@centos ~]# mongod -f /etc/mongod.conf
三、連接MongoDB
1、本機直接運行下面命令進入到mongodb shell中
[root@centos ~]# mongo
2、若監(jiān)聽端口并不是默認的27017,則連接時需加--port選項,例如端口號被修改為27018:
[root@centos ~]# mongo --port 27018
3、遠程連接MongoDB,需要加--host選項,例如
[root@centos ~]# mongo --host 127.0.0.1
4、如果設置了驗證,則連接時需加上用戶名和密碼(與MySQL相似),例如
[root@centos ~]# mongo -utpp -p123456 //用戶名tpp,密碼123456
四、MongoDB用戶管理
1、mongodb用戶是針對庫來的,建立用戶時要先進入到對應的庫里
> use test
switched to db test |
2、創(chuàng)建用戶及角色
> db.createUser({user:"admin",pwd:"123456",roles:[{role:'dbOwner',db:'userdb'}]})
Successfully added user: { "user" : "admin", "roles" : [ { "role" : "dbOwner", "db" : "userdb" } ] } |
3、查看所有用戶
> use admin //只有在admin庫里才能查看到所有用戶
switched to db admin
> db.system.users.find() //可以看到之前創(chuàng)建的admin用戶
{ "_id" : "test.admin", "user" : "admin", "db" : "test", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "Ye/s***eMZ5IsVUaNRHN6A==", "storedKey" : "yocgLHpm2MUlL/VmViLZVirJBAE=", "serverKey" : "M6Rj/hxMVbgvaF9TmG4y+k7Dg3g=" } }, "roles" : [ { "role" : "dbOwner", "db" : "userdb" } ] } |
4、查看當前庫下所有用戶
> use test //因為admin庫沒有用戶,而test庫有
switched to db test
> show users //查看當前庫下所有用戶
{ "_id" : "test.admin", "user" : "admin", "db" : "test", "roles" : [ { "role" : "dbOwner", "db" : "userdb" } ] } |
5、刪除用戶
> db.dropUser('admin') //要先進入該用戶所在的庫
true |
五、MongoDB庫管理
1、查看版本
> db.version()
3.0.7
2、創(chuàng)建庫
> use userdb //如果庫存在就切換
switched to db userdb
> db.createCollection('mycol') //創(chuàng)建集合mycol,當創(chuàng)建了集合后,我們才可以看到userdb庫
{ "ok" : 1 }
3、查看庫
> show dbs
admin 0.078GB
local 0.078GB
userdb 0.078GB
4、刪除當前所在庫
> db.dropDatabase()
{ "dropped" : "userdb", "ok" : 1 }
> show dbs
admin 0.078GB
local 0.078GB
5、查看當前庫狀態(tài)信息
> use admin
switched to db admin
> db.stats()
{
"db" : "admin",
"collections" : 4,
"objects" : 10,
"avgObjSize" : 67.2,
"dataSize" : 672,
"storageSize" : 28672,
"numExtents" : 4,
"indexes" : 3,
"indexSize" : 24528,
"fileSize" : 67108864,
"nsSizeMB" : 16,
"extentFreeList" : {
"num" : 0,
"totalSize" : 0
},
"dataFileVersion" : {
"major" : 4,
"minor" : 22
},
"ok" : 1
}
6、查看mongodb服務器的狀態(tài)
> db.serverStatus()
六、MongoDB創(chuàng)建集合
語法:db.cretateCollection(name,option)
> use mydb
switched to db mydb
> db.createCollection('myclo',{capped:true,autoIndexID:true,size:6142800,max:10000})
{ "ok" : 1 }
語法說明: name:集合的名字 option:用來配置集合的參數(shù)(都為可選) 1)capped true/false:如果為true,則啟用封頂集合,封頂集合是固定大小的集合,當它達到其大值,會自動覆蓋最早的條目;如果為false,則也需要指定尺寸參數(shù)。 2)autoIndexID true/false:如果為true,自動創(chuàng)建索引_id字段的默認值是false。 3)size:指定大大小字節(jié)封頂集合;如果封頂是true,那么還需指定這個字段,單位為B。 4)max:指定封頂集合允許在文件的大數(shù)量。 |
七、MongoDB數(shù)據(jù)管理
1、查看集合
> show collections //也可以使用show tables
myclo system.indexes |
2、插入文檔數(shù)據(jù)
> db.Account.insert({AccountID:1,UserName:"123",password:"123456"})
WriteResult({ "nInserted" : 1 }) |
> db.Account.insert({AccountID:2,UserName:'aaa',password:'123456'})
WriteResult({ "nInserted" : 1 }) |
注意:如果Account集合不存在,直接插入數(shù)據(jù),mongodb會自動創(chuàng)建該集合
3、更新文檔數(shù)據(jù)
> db.Account.update({AccountID:1},{"$set":{"Age":20}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) |
4、查看所有文檔
> db.Account.find()
{ "_id" : ObjectId("5666000a6ee7f810bc23f731"), "AccountID" : 1, "UserName" : "123", "password" : "123456", "Age" : 20 } { "_id" : ObjectId("566601e16ee7f810bc23f732"), "AccountID" : 2, "UserName" : "aaa", "password" : "123456" } |
5、根據(jù)條件查詢文檔
> db.Account.find({AccountID:2})
{ "_id" : ObjectId("566601e16ee7f810bc23f732"), "AccountID" : 2, "UserName" : "aaa", "password" : "123456" } |
> db.Account.find({"UserName":"aaa"})
{ "_id" : ObjectId("566601e16ee7f810bc23f732"), "AccountID" : 2, "UserName" : "aaa", "password" : "123456" } |
6、根據(jù)條件刪除文檔
> db.Account.remove({AccountID:1})
WriteResult({ "nRemoved" : 1 }) |
> db.Account.find()
{ "_id" : ObjectId("566601e16ee7f810bc23f732"), "AccountID" : 2, "UserName" : "aaa", "password" : "123456" } |
7、刪除集合
> db.Account.drop()
true |
> show collections
myclo system.indexes |
8、查看集合狀態(tài)
> use mydb //先進入該庫
switched to db mydb |
> db.printCollectionStats()
myclo { "ns" : "mydb.myclo", "count" : 0, "size" : 0, "numExtents" : 1, "storageSize" : 6144000, "lastExtentSize" : 6144000, "paddingFactor" : 1, "paddingFactorNote" : "paddingFactor is unused and unmaintained in 3.0. It remains hard coded to 1.0 for compatibility only.", "userFlags" : 1, "capped" : true, "max" : 10000, "maxSize" : 6144000, "nindexes" : 1, "totalIndexSize" : 8176, "indexSizes" : { "_id_" : 8176 }, "ok" : 1 } --- system.indexes { "ns" : "mydb.system.indexes", "count" : 1, "size" : 112, "avgObjSize" : 112, "numExtents" : 1, "storageSize" : 8192, "lastExtentSize" : 8192, "paddingFactor" : 1, "paddingFactorNote" : "paddingFactor is unused and unmaintained in 3.0. It remains hard coded to 1.0 for compatibility only.", "userFlags" : 0, "capped" : false, "nindexes" : 0, "totalIndexSize" : 0, "indexSizes" : { }, "ok" : 1 } --- |
參考文章
MongoDB用戶與角色管理的介紹:http://bbs.51cto.com/thread-1146654-1.html
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
標題名稱:MongoDB安裝及常用操作-創(chuàng)新互聯(lián)
分享地址:http://jinyejixie.com/article28/peojp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供面包屑導航、用戶體驗、ChatGPT、響應式網(wǎng)站、標簽優(yōu)化、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)