MongoDB安裝及常用操作-創(chuàng)新互聯(lián)

一、MongoDB簡介

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比京口網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式京口網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋京口地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。

1、介紹

1)MongoDB是由C++語言編寫的,是一個(gè)基于分布式文件存儲的開源數(shù)據(jù)庫系統(tǒng),也屬于NoSQL。

2)在高負(fù)載的情況下,可以添加更多的節(jié)點(diǎn),可以保證服務(wù)器性能。

3)MongoDB旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案。

4)MongoDB將數(shù)據(jù)存儲為一個(gè)文檔,數(shù)據(jù)結(jié)構(gòu)由鍵值(key=>value)對組成;MongoDB文檔類似于JSON對象;字段值可以包括其他文檔,數(shù)組及文檔數(shù)組。

2、MongoDB和關(guān)系型數(shù)據(jù)庫對比

SQL術(shù)語/概念MongoDB術(shù)語/概念解釋說明
databasedatabase數(shù)據(jù)庫
tablecollection數(shù)據(jù)庫表/集合
rowdocument數(shù)據(jù)記錄行/文檔
columnfiled數(shù)據(jù)字段/域
indexindex索引
table joins
表連接,MongoDB不支持
primary keyprimary key主鍵,MongoDB自動將_id字段設(shè)置為主鍵

MongoDB安裝及常用操作

MongoDB安裝及常用操作

二、MongoDB安裝


如果安裝epel擴(kuò)展源,可以安裝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,即恢復(fù)使用原來的yum源了。

2、安裝

[root@centos ~]# yum install -y mongodb-org

注意:下載時(shí)候因?yàn)槭菄獾脑?,有可能會出現(xiàn)下載中斷的情況。

3、修改配置文件

[root@centos ~]# vim /etc/mongod.conf          //去掉三處注釋

 fork: true

 pidFilePath: /var/run/mongodb/mongod.pid

 bindIp:

MongoDB安裝及常用操作

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

注意:若啟動失敗,可以用下面命令啟動,會有錯(cuò)誤提示信息

[root@centos ~]# mongod -f /etc/mongod.conf

三、連接MongoDB


1、本機(jī)直接運(yùn)行下面命令進(jìn)入到mongodb shell中

[root@centos ~]# mongo

2、若監(jiān)聽端口并不是默認(rèn)的27017,則連接時(shí)需加--port選項(xiàng),例如端口號被修改為27018:

[root@centos ~]# mongo --port 27018

3、遠(yuǎn)程連接MongoDB,需要加--host選項(xiàng),例如

[root@centos ~]# mongo --host 127.0.0.1

4、如果設(shè)置了驗(yàn)證,則連接時(shí)需加上用戶名和密碼(與MySQL相似),例如

[root@centos ~]# mongo -utpp -p123456         //用戶名tpp,密碼123456

四、MongoDB用戶管理


1、mongodb用戶是針對庫來的,建立用戶時(shí)要先進(jìn)入到對應(yīng)的庫里

> 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、查看當(dāng)前庫下所有用戶

> use test                       //因?yàn)閍dmin庫沒有用戶,而test庫有

switched to db test

> show users                    //查看當(dāng)前庫下所有用戶

{

    "_id" : "test.admin",

    "user" : "admin",

    "db" : "test",

    "roles" : [

        {

            "role" : "dbOwner",

            "db" : "userdb"

        }

    ]

}

5、刪除用戶

> db.dropUser('admin')            //要先進(jìn)入該用戶所在的庫

true

五、MongoDB庫管理


1、查看版本

> db.version()

3.0.7

2、創(chuàng)建庫

> use userdb                 //如果庫存在就切換

switched to db userdb

> db.createCollection('mycol')    //創(chuàng)建集合mycol,當(dāng)創(chuàng)建了集合后,我們才可以看到userdb庫

{ "ok" : 1 }

3、查看庫

> show dbs

admin  0.078GB

local  0.078GB

userdb  0.078GB

4、刪除當(dāng)前所在庫

> db.dropDatabase()

{ "dropped" : "userdb", "ok" : 1 }

> show dbs

admin  0.078GB

local  0.078GB

5、查看當(dāng)前庫狀態(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服務(wù)器的狀態(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,則啟用封頂集合,封頂集合是固定大小的集合,當(dāng)它達(dá)到其大值,會自動覆蓋最早的條目;如果為false,則也需要指定尺寸參數(shù)。

2)autoIndexID true/false:如果為true,自動創(chuàng)建索引_id字段的默認(rèn)值是false。

3)size:指定大大小字節(jié)封頂集合;如果封頂是true,那么還需指定這個(gè)字段,單位為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                 //先進(jìn)入該庫

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

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

標(biāo)題名稱:MongoDB安裝及常用操作-創(chuàng)新互聯(lián)
分享地址:http://muchs.cn/article28/peojp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、用戶體驗(yàn)、ChatGPT、響應(yīng)式網(wǎng)站標(biāo)簽優(yōu)化、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)