博客確定是以用戶爲中心,包括用戶的註冊,用戶的登陸,用戶發表留言,對留言進行評價等等功能,因此,天然離不開數據庫。javascript
MongoDB是一個開源的NoSql數據庫,相比mysql那樣的關係型數據庫,它更爲輕巧,靈活,很是適合在數據規模很大,事務性不強的場合下使用php
MongoDB將數據存儲爲一個文檔,數據結構由鍵值對(key=>value)組成。字段值能夠包含其餘文檔,數組及文檔數組java
相對於mysql這類須要把對象屬性轉換成SQL語句才能保存下來 ,MongoDB這些能夠直接保存JS對象成數據庫的文檔,來看一個MongoDB文檔的示例:node
{ "_id" : ObjectId( "4f7fe8432b4a1077a7c551e8" ), name : 'phping', age : 28, hobby : ['movies','music','nba'] }
能夠看到數據格式爲json,所以與javascript的親和性很強,咱們的項目也是使用MongoDB。mysql
在mongodb
中基本的概念是文檔、集合、數據庫。下表將幫助您更容易理解Mongo中的一些概念:linux
SQL術語/概念 | MongoDB術語/概念 | 解釋/說明 |
---|---|---|
database | database | 數據庫 |
table | collection | 數據庫表/集合 |
row | document | 數據庫記錄集合/文檔 |
column | field | 數據字段/域 |
index | index | 索引 |
table joins | 錶鏈接,mongodb不支持 | |
primary key | primary key | 主鍵,MongoDB自動將_id字段設置爲主鍵 |
經過下圖實例咱們也能更好的瞭解Mongo中的一些概念:
git
你們能夠針對本身的系統,參考下面的連接嚮導來進行安裝,步驟都是很是的詳細。這裏再也不贅述。github
Windows 用戶嚮導:https://docs.mongodb.com/manu...sql
Linux 用戶嚮導:https://docs.mongodb.com/manu...mongodb
Mac 用戶嚮導:https://docs.mongodb.com/manu...
我使用的MongoDB 可視化管理工具是Robomongo,固然還有其它的可使用,如:MongoChef等。
Robomongo
Robomongo 是一個基於 Shell 的跨平臺開源 MongoDB 管理工具。嵌入了 JavaScript 引擎和 MongoDB mogo 。只要你會使用 mongo shell ,你就會使用 Robomongo。提供語法高亮、自動完成、差異視圖等。
建立鏈接
下載並安裝成功後點擊左上角的 Create 來建立一個鏈接,給該鏈接起個名字如: localhost,使用默認地址(localhost)和端口(27017)便可,點擊 Save 保存,以下圖:
添加數據
前面已經簡單的介紹了mongodb中的一些概念,讓咱們使用Robomongo這個圖形化管理工具來添加數據:
點插入文檔:
會打開一個空白麪板,讓咱們手動寫入要添加的數據:
寫一個簡單的測試數據以下:
其中左下角的按鈕能夠用來驗證咱們寫入的數據格式,數據格式無誤後點擊右下角的保存按鈕便可。
查看新增長的文檔:
這時,在你右邊區域就能夠看到咱們剛纔新增長的數據了:
好了,MongoDB安裝成功了,咱們來使用Mongolass鏈接數據庫。
$ npm install mongoose
首先,咱們須要定義一個鏈接。若是您的應用程序只使用一個數據庫,您應該使用mongoose.connect
;
若是您須要建立額外的鏈接,使用mongoose.createConnection
。
這兩種方式鏈接都須要mongodb:// URI
,或者主機名字,數據庫名字,端口號,配置項等。
var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/my_database');
var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/my_database'); var Cat = mongoose.model('Cat', { name: String });
var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/my_database'); var Cat = mongoose.model('Cat', { name: String }); var kitty = new Cat({ name: 'Zildjian' }); kitty.save(function (err) { if (err) { console.log(err); } else { console.log('meow'); } });
更多使用能夠查看官網文檔.
本篇主要講解了我在開發本項目時使用的什麼數據庫,怎麼鏈接數據庫,下節乾貨就來了:用戶註冊功能開發,敬請期待!
工程代碼可從github上下載:https://github.com/phping1/no...
想查看更多文章,請點擊個人博客