使用mongoose鏈接mongodb(轉載文章)

mongodb數據庫

MongoDB是一個高效的基於分佈式文件存儲的數據庫,將數據存儲爲一個文檔,數據結構由鍵值(key=>value)對組成。MongoDB 文檔相似於 JSON 對象。字段值能夠包含其餘文檔,數組及文檔數組,很適合和nodejs搭配。node

Mongoose是基於nodejs的一個mongodb對象模型工具,能夠很方便的對mongodb進行操做。
mysql

momngodb和mysql比較

對比項 MongoDB MySQL
數據庫 數據庫(dataBase) 數據庫(dataBase)
集合(collection) 二維表(table)
表在中的一行數據 文檔(document) 一條記錄(record)
表字段 鍵(key) 列(column)
主外鍵 Primary Key
靈活度擴展性
表的關聯性

mongodb的安裝

windows下的安裝

安裝

根據電腦操做系統位數下載對應的安裝包。安裝過程幾乎一路下一步就能夠安裝完成。通常默認安裝在C:\Program Files\MongoDB。linux

安裝完mongodb成後,在此,以安裝在c盤路徑下爲例,建立文件夾 C:\data\db。sql

在mongodb的安裝目錄的bin文件下,執行命令C:\Program Files\MongoDB\Server\3.2\bin mongod –dbpath c:\data\db,若是出現以下提示通常表示安裝成功,這樣mongodb的服務就啓動了,ctrl+c可關閉服務。
mongodb

再建立文件夾C:\data\log和文件C:\data\mongod.cfg。
mongod.cfg文件的內容爲下:shell

1
2
3
4
5
systemLog:
destination: file
path: c:\data\log\mongod.log
storage:
dbPath: c:\data\db

 

運行命令行執行mongod.cfg來制定數據庫和日誌文件目錄:
C:\Program Files\MongoDB\bin\mongod.exe –config 「C:\data\mongod.cfg」 –install數據庫

啓動服務

C:\Program Files\MongoDB\Server\3.2\bin net start MongoDB
啓動服務狀態下,瀏覽器打開 http://localhost:27017,若是出現如下內容,表示安裝及啓動mongodb服務成功。
windows

關閉服務

C:\Program Files\MongoDB\Server\3.2\bin net stop MongoDBcentos

經常使用命令

安裝路徑下,運行mongo進入命令模式,C:\Program Files\MongoDB\Server\3.2\bin mongo數組

1
2
3
4
5
6
7
8
9
db.help() 查看命令提示
db 查看當前所在數據庫的名字
use 數據庫名 表示切換或是建立數據庫
show dbs 顯示有數據的庫
db.stats() 查看當前數據的狀態
db.version() 查看mongoDB版本
db.[數據庫名].insert() 插入數據
db.[數據庫名].find() 查找數據
![](/images/3.png)

 

linux下的安裝

1. 首先查你的linux版本

x86_64 表示你的操做系統爲64位

1
$ uname -a

 

2.下載安裝包

1
$ curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz

3. 解壓

1
$ tar -zxvf mongodb-linux-x86_64-3.0.6.tgz

4. 將解壓包拷貝到指定目錄

1
$ mv  mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb

5. 將可執行文件添加到path路徑

export PATH=/bin:$PATH
本文的安裝路徑在 /usr/local/mongodb,
因此運行

1
$ export PATH=/usr/local/mongodb/bin:$PATH

 

6. 建立數據庫目錄

mongodb的安裝需手動建立data存儲目錄,在此咱們在根目錄下建立data/mongo文件夾

1
$ mkdir -p /data/mongo

 

而後在mongo文件夾裏建立mongodb.cnf配置文件,用來設置mongodb的數據庫路徑以及啓動參數等。
內容能夠以下。
其中,dbpath表示mongodb數據庫的路徑,logpath是數據庫日誌路徑,port表示鏈接端口,auth爲true表示經過密碼驗證。

其中注意,auth不設置或設置爲false的話,數據庫表示沒有密碼,能夠直接鏈接。本身測試的話能夠不設密碼,但正式項目中必定要設置密碼驗證,
不然任何人均可以輕易侵入你的數據庫。

1
2
3
4
5
6
7
8
9
10
11
dbpath=/data/mongo/

logpath=/data/mongo/mongo.log

logappend=true

fork=true

port=27017

auth=true

7. 運行mongodb服務

在/usr/local/mongodb/bin路徑下,運行命令,-f 後的路徑爲本身建立的mongodb配置文件(見第6步)

1
$ mongod -f /data/mongo/mongodb.cnf

 

若是不建立mongodb.cnf的話,也能夠用加參數的方式啓動mongodb,效果和啓動配置文件同樣。但推薦配置文件的方式,修改和啓動都方便。

1
$ mongod -dbpath /data/mongo/ -logpath /data/mongo/mongo.log -logappend -fork -port 27017 -auth

運行後打印相似以下,表示啓動mongodb成功

1
2
3
4
5
2018-04-24T08:55:06.486+0000 I JOURNAL  [initandlisten] journal dir=/data/db/journal
2018-04-24T08:55:06.487+0000 I JOURNAL [initandlisten] recover : no journal files present, no recovery needed
2018-04-24T08:55:11.438+0000 I JOURNAL [initandlisten] preallocateIsFaster check took 4.951 secs
2018-04-24T08:55:11.536+0000 I JOURNAL [durability] Durability thread started
2018-04-24T08:55:11.536+0000 I JOURNAL [journal writer] Journal writer thread started

 

8. 數據庫的重啓

關閉數據庫:

切入admin數據庫中,而後運行db.shutdownServer() 關閉數據庫。
有時關閉失敗,可能有其餘誤操做,這時在/data/mongo下運行rm -f mongod.lock刪掉 /data/mongo/mongod.lock文件,再重啓就行了。

1
2
$ use admin
$ db.shutdownServer()

但有時運行db.shutdownServer()依然不能關閉數據庫,這是能夠採用一種強力的方法,用命令強行殺死mongodb的進程。

1
2
3
4
$ netstat -tln    // 查看進程
$ netstat -tln | grep 27017 //查看mongo進程
$ lsof -i:27017 // 查看27017端口被哪一個應用佔用,找出pid (若是沒有lsof,centos下先安裝 yum install lsof)
$ kill -9 9527 // 9527是mongodb進程的pid

 

啓動數據庫

1
mongod -f /data/mongo/mongodb.cnf

啓動成功後會有successfully的提示符

8. 設置數據庫用戶及密碼

默認安裝mongodb,若是直接建立數據庫的話,是沒有密碼的,在真實開發環境中,頗有必要爲數據庫設置密碼來保障安全。

Mongodb用戶有全局用戶和數據庫對應用戶。

mongodb有一個admin數據庫,用於建立全局用戶帳號,這個帳號能夠訪問可鏈接到其餘數據庫。

建立admin帳號

1
2
3
$ use admin  // 切到admin數據庫
$ db.createUser({user: 'root', pwd: 'test', roles: ['root']}) // 建立帳號和密碼
$ db.auth('root', 'test') // 驗證用戶身份 返回1爲正確, 0爲錯誤

 

能夠在可視化工具裏經過admin帳號鏈接到全部的數據庫。

建立普通數據庫帳號,方式同建立admin帳號,只是要先切進到對應的數據庫。

1
2
3
$ use somedbname  // 切到普通數據庫
$ db.createUser({user:'root',pwd:'test2',roles: [{role:'readWrite',db:'somedbname'}]}) // 建立帳號和密碼,設置權限爲可讀寫
$ db.auth('root', 'test2') // 驗證用戶身份 返回1爲正確, 0爲錯誤

 

項目開發中好比要鏈接某個數據庫:

1
mongodb://root:test2@127.0.0.1:27017/somedbname

 

注意一點,若是密碼有@的話,須要轉譯成’%40’

文章來源:http://kiwiyan.cn/2018/01/08/%E8%BF%9E%E6%8E%A5mongodb/

==================================

補充:

若是想要進入MongoDB的Shell,須要運行/usr/local/mongodb/bin/mongo

每次都要打這麼一長串命令太麻煩了 因此乾脆在系統bin目錄下給它創建一個軟連接吧

ln -s /usr/local/mongodb/bin/mongo /bin/mongo

這樣一來 無論在哪一個目錄下 若是想要進入MongoDB的shell 只須要打"mongo"命令就能夠了

相關文章
相關標籤/搜索