MongoDB初遇

1、MongoDB服務的啓動

       Mongodb的安裝仍是比較容易的,從MongoDB下載MongoDB,Windows下基本上按照提示一步一步的執行就能夠了,Linux下只需解壓就能夠了。安裝完畢後爲了不每一次都加上絕對路徑,配置一下環境變量,把mongodbbin目錄加入到path中。mongodb

接下來啓動mongodb服務,若是配置了環境變量最簡單的啓動mongodb服務就是:shell

mongod --dbpath e:\data\db

   注意:dbpath表示就是數據存放的目錄,只有是存在的目錄就能夠了。若是是Windows32位系統MongoDB是沒有默認的存儲引擎的,必需要經過啓動參數指定存儲引擎如:數據庫

mongod --storageEngine=mmavp1 –dbpath e:\data\db

只須要在第一次指定dbpath的時候加上存儲引擎參數就能夠了,只要不改變dbpath的目錄,之後就不用加存儲引擎參數了。segmentfault

1:啓動mongodb服務服務器

   啓動mongodb服務除了指定dbpath參數以外還有幾個比較經常使用的就是—auth,表示使用數據庫須要驗證,--logpath表示日誌文件的位置。--logappend表示添加日誌的方式。例如:app

mongod --auth --logpath "e:\logs\log.log" --logappend --dbpath "e:\data\ \db"

若是絕對每一次啓動mongodb輸入這麼多參數麻煩,Windows下能夠經過下面的命令安裝mongodb服務。工具

mongod --auth --logpath "e:\logs\log.log" --logappend --dbpath "e:\data\ \db" –install

由於默認的服務名就是mongodb,因此安裝完成以後就能夠經過spa

net start mongodb 來啓動服務
net stop mongodb 來關閉服務

   注意指定的日誌文件目錄和數據文件目錄必定要存在,不然會出錯。若是要修改能夠把install選項換成reinstall,如:命令行

mongod --auth --logpath "e:\logs\log.log" --logappend --dbpath "e:\data\ \db" –reinstall

   若是你安裝服務以後發現你每一次啓動都想指定不一樣的啓動參數,那麼可使用rest

sc delete mongodb  來刪除服務。

   若是隻是本機使用,建議啓動參數不用鍵- -auth選項,特別是不熟悉mongodb的狀況下,由於mongodb的權限管理相關的知識仍是比較多的。

2、MongoDB的基本命令


   啓動好了mongodb服務,就能夠經過mongodb提供的客戶端鏈接到mongodb數據庫了,啓動一個命令窗口,輸入mongo命令:鏈接到mongodb數據服務器默認使用的是test數據庫

圖2:鏈接mongodb服務

查看全部的數據庫
show dbs
查看當前使用的數據庫
db
切換數據庫和MySQL同樣使用關鍵字use,下面命令是切換到test數據庫
use test
建立數據庫也是使用use
只有在數據庫中建立了集合,纔會查看到服務器中有對應的數據庫
建立集合
db.createCollection(「collection_name」)
刪除集合
db.collection_name.drop()
db.dropDatabase()
mongodb中沒有表的慨念,與之相對應的是集合collection,查看全部的集合
show collections
查看有那些用戶:(admin數據庫才能夠)
db.system.users.find().pretty()
這條語句就是查詢admin數據庫下的system.users集合中的數據,pretty方法表示格式化輸出的數據。

   默認狀況下mongodb是沒有用戶的,若是是在—auth啓動的mongodb會應許你建立一個用戶,若是要建立更多的用戶則須要響應的權限。

   因此若是咱們用—auth啓動mongodb服務,咱們建立的第一個用戶的角色通常是userAdminAnyDatabase 這個角色是mongodb內置的角色。這個內建角色最經常使用的就是它擁有查看數據庫列表的權限,和對全部數據庫的userAdmin這個內建角色的權限。若是一個用戶在數據庫上被賦予userAdmin這個角色,那麼他在該數據庫上就有如下的權限:

  changeCustomData
  changePassword
  createRole
  createUser
  dropRole
  dropUser
  grantRole
  revokeRole
  viewRole
  viewUser

   這裏咱們不在深刻的探討用戶(usesr),角色(role),權限(action)的話題,對於最基本的操做咱們須要注意的是用戶是創建在數據庫上的,因此當咱們只需受權操做時候要在use到對應的數據庫上db.auth(「username」,」password」)。也能夠自定義角色,指定角色有哪些權限(action)

下面是在admin數據庫上建立一個admin用戶,而且爲他賦予了userAdminAnyDatabase角色和建立成功的返回結果。

db.createUser({user:"admin",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
Successfully added user: {
        "user" : "admin",
        "roles" : [
                {
                        "role" : "userAdminAnyDatabase",
                        "db" : "admin"
                }
        ]
}

3、MongoDB的數據備份與還原

首先是mongodump命令,仍是隻使用基本的參數

mongodump –d database_name –o outdir

把數據庫名爲database_name的數據庫導出到outdir目錄

mongodump命令導出的數據恢復:

mongorestore –d database_name outdir

outdir目錄的導入到數據庫名爲database_name 的數據庫

mongoexport –d database_name –c collection_name –o outfile_name

把數據庫名爲database_name 集合名爲collection_name導出爲outfile_name

mongoimport –d database_name –c collection_name infile_name

把文件infile_name文件的數據導入到數據庫名爲database_name,集合名爲collection_name的集合。

   相比於 mongodbimport命令,mongorestore命令能夠實現批量的導入,恢復重mongodump導出的整個數據庫的時候,使用mongoresotre直接一步到位,很是方便。

   上面的4個命令默認的鏈接的數據庫都是localhost,端口是27017mongodb服務。因此必定要啓動本地的mongodb服務。固然你也能夠經過—host hostname:port的方式來指定要鏈接的主機和端口。值得注意的是上面的是個命令都是單獨的工具,因此直接在命令行執行就能夠了,不要在mongo中執行。

4、參考連接

下面的連接是mongodb官方文檔關於mongodb基本操做(增刪改查)

https://docs.mongodb.org/manual/core/crud-introduction/

Mongodb的官方文檔中有一些內容很差找,下面就是一個mongodb shell經常使用的文檔連接,其中就包含了用戶和角色管理

https://docs.mongodb.org/manual/reference/method/

若是你沒有安裝成功,這裏有一篇不錯的關於怎樣安裝mongodb的文章:

http://www.javashuo.com/article/p-krjhcxmq-cv.html

mongodb的數據備份與恢復:

https://docs.mongodb.org/manual/reference/program/mongodump/

https://docs.mongodb.org/manual/reference/program/mongorestore/

https://docs.mongodb.org/manual/reference/program/mongoexport/

相關文章
相關標籤/搜索