摘要:連接數(shù)據(jù)庫(kù)引子博客肯定是以用戶(hù)為中心,包括用戶(hù)的注冊(cè),用戶(hù)的登錄,用戶(hù)發(fā)表留言,對(duì)留言進(jìn)行評(píng)價(jià)等等功能,所以,自然離不開(kāi)數(shù)據(jù)庫(kù)。概念解析在中基本的概念是文檔集合數(shù)據(jù)庫(kù)。這兩種方式連接都需要,或者主機(jī)名字,數(shù)據(jù)庫(kù)名字,端口號(hào),配置項(xiàng)等。
連接數(shù)據(jù)庫(kù) 引子
MongoDB博客肯定是以用戶(hù)為中心,包括用戶(hù)的注冊(cè),用戶(hù)的登錄,用戶(hù)發(fā)表留言,對(duì)留言進(jìn)行評(píng)價(jià)等等功能,所以,自然離不開(kāi)數(shù)據(jù)庫(kù)。
MongoDB是一個(gè)開(kāi)源的NoSql數(shù)據(jù)庫(kù),相比mysql那樣的關(guān)系型數(shù)據(jù)庫(kù),它更為輕巧,靈活,非常適合在數(shù)據(jù)規(guī)模很大,事務(wù)性不強(qiáng)的場(chǎng)合下使用
MongoDB將數(shù)據(jù)存儲(chǔ)為一個(gè)文檔,數(shù)據(jù)結(jié)構(gòu)由鍵值對(duì)(key=>value)組成。字段值可以包含其他文檔,數(shù)組及文檔數(shù)組
相對(duì)于mysql這類(lèi)需要把對(duì)象屬性轉(zhuǎn)換成SQL語(yǔ)句才能保存下來(lái) ,MongoDB這些可以直接保存JS對(duì)象成數(shù)據(jù)庫(kù)的文檔,來(lái)看一個(gè)MongoDB文檔的示例:
{ "_id" : ObjectId( "4f7fe8432b4a1077a7c551e8" ), name : "phping", age : 28, hobby : ["movies","music","nba"] }
可以看到數(shù)據(jù)格式為json,因此與javascript的親和性很強(qiáng),我們的項(xiàng)目也是使用MongoDB。
在mongodb中基本的概念是文檔、集合、數(shù)據(jù)庫(kù)。下表將幫助您更容易理解Mongo中的一些概念:
SQL術(shù)語(yǔ)/概念 | MongoDB術(shù)語(yǔ)/概念 | 解釋/說(shuō)明 |
---|---|---|
database | database | 數(shù)據(jù)庫(kù) |
table | collection | 數(shù)據(jù)庫(kù)表/集合 |
row | document | 數(shù)據(jù)庫(kù)記錄集合/文檔 |
column | field | 數(shù)據(jù)字段/域 |
index | index | 索引 |
table joins | 表連接,mongodb不支持 | |
primary key | primary key | 主鍵,MongoDB自動(dòng)將_id字段設(shè)置為主鍵 |
通過(guò)下圖實(shí)例我們也能更好的了解Mongo中的一些概念:
大家可以針對(duì)自己的系統(tǒng),參考下面的鏈接向?qū)?lái)進(jìn)行安裝,步驟都是非常的詳細(xì)。這里不再贅述。
Windows 用戶(hù)向?qū)В篽ttps://docs.mongodb.com/manu...
Linux 用戶(hù)向?qū)В篽ttps://docs.mongodb.com/manu...
Mac 用戶(hù)向?qū)В篽ttps://docs.mongodb.com/manu...
我使用的MongoDB 可視化管理工具是Robomongo,當(dāng)然還有其它的可以使用,如:MongoChef等。
Robomongo
Robomongo 是一個(gè)基于 Shell 的跨平臺(tái)開(kāi)源 MongoDB 管理工具。嵌入了 JavaScript 引擎和 MongoDB mogo 。只要你會(huì)使用 mongo shell ,你就會(huì)使用 Robomongo。提供語(yǔ)法高亮、自動(dòng)完成、差別視圖等。
點(diǎn)擊這里下載
創(chuàng)建連接
下載并安裝成功后點(diǎn)擊左上角的 Create 來(lái)創(chuàng)建一個(gè)連接,給該連接起個(gè)名字如: localhost,使用默認(rèn)地址(localhost)和端口(27017)即可,點(diǎn)擊 Save 保存,如下圖:
添加數(shù)據(jù)
前面已經(jīng)簡(jiǎn)單的介紹了mongodb中的一些概念,讓我們使用Robomongo這個(gè)圖形化管理工具來(lái)添加數(shù)據(jù):
點(diǎn)插入文檔:
會(huì)打開(kāi)一個(gè)空白面板,讓我們手動(dòng)寫(xiě)入要添加的數(shù)據(jù):
寫(xiě)一個(gè)簡(jiǎn)單的測(cè)試數(shù)據(jù)如下:
其中左下角的按鈕可以用來(lái)驗(yàn)證我們寫(xiě)入的數(shù)據(jù)格式,數(shù)據(jù)格式無(wú)誤后點(diǎn)擊右下角的保存按鈕即可。
查看新增加的文檔:
這時(shí),在你右邊區(qū)域就可以看到我們剛才新增加的數(shù)據(jù)了:
好了,MongoDB安裝成功了,我們來(lái)使用Mongolass連接數(shù)據(jù)庫(kù)。
$ npm install mongoose
首先,我們需要定義一個(gè)連接。如果您的應(yīng)用程序只使用一個(gè)數(shù)據(jù)庫(kù),您應(yīng)該使用mongoose.connect;
如果您需要?jiǎng)?chuàng)建額外的連接,使用mongoose.createConnection。
這兩種方式連接都需要mongodb:// URI,或者主機(jī)名字,數(shù)據(jù)庫(kù)名字,端口號(hào),配置項(xiàng)等。
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"); } });
更多使用可以查看官網(wǎng)文檔.
總結(jié)本篇主要講解了我在開(kāi)發(fā)本項(xiàng)目時(shí)使用的什么數(shù)據(jù)庫(kù),怎么連接數(shù)據(jù)庫(kù),下節(jié)干貨就來(lái)了:用戶(hù)注冊(cè)功能開(kāi)發(fā),敬請(qǐng)期待!
工程代碼可從github上下載:https://github.com/phping1/no...
想查看更多文章,請(qǐng)點(diǎn)擊我的博客
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/18950.html
摘要:本文將介紹如何使用和抓取主流的技術(shù)博客文章,然后用搭建一個(gè)小型的技術(shù)文章聚合平臺(tái)。是谷歌開(kāi)源的基于和的自動(dòng)化測(cè)試工具,可以很方便的讓程序模擬用戶(hù)的操作,對(duì)瀏覽器進(jìn)行程序化控制。相對(duì)于,是新的開(kāi)源項(xiàng)目,而且是谷歌開(kāi)發(fā),可以使用很多新的特性。 背景 說(shuō)到爬蟲(chóng),大多數(shù)程序員想到的是scrapy這樣受人歡迎的框架。scrapy的確不錯(cuò),而且有很強(qiáng)大的生態(tài)圈,有g(shù)erapy等優(yōu)秀的可視化界面。但...
摘要:本文將介紹如何使用和抓取主流的技術(shù)博客文章,然后用搭建一個(gè)小型的技術(shù)文章聚合平臺(tái)。是谷歌開(kāi)源的基于和的自動(dòng)化測(cè)試工具,可以很方便的讓程序模擬用戶(hù)的操作,對(duì)瀏覽器進(jìn)行程序化控制。相對(duì)于,是新的開(kāi)源項(xiàng)目,而且是谷歌開(kāi)發(fā),可以使用很多新的特性。 背景 說(shuō)到爬蟲(chóng),大多數(shù)程序員想到的是scrapy這樣受人歡迎的框架。scrapy的確不錯(cuò),而且有很強(qiáng)大的生態(tài)圈,有g(shù)erapy等優(yōu)秀的可視化界面。但...
摘要:前端的所使用的技術(shù)棧后端這個(gè)小項(xiàng)目才開(kāi)始,使用已經(jīng)搭建好了前端開(kāi)發(fā)環(huán)境及相應(yīng)的的配置。接下來(lái)我會(huì)帶著大家一起完成整個(gè)簡(jiǎn)書(shū)的開(kāi)發(fā)工作。 這是一個(gè)開(kāi)源的個(gè)人項(xiàng)目。 前端的所使用的技術(shù)棧: typescriptes6vue2vue-cliwebpack2axiosangular4angular-cli 后端: nodejsmongoDBejs 這個(gè)小項(xiàng)目才開(kāi)始,使用vue-cli已經(jīng)搭建好了...
閱讀 2488·2021-09-22 16:05
閱讀 2978·2021-09-10 11:24
閱讀 3647·2019-08-30 12:47
閱讀 2952·2019-08-29 15:42
閱讀 3393·2019-08-29 15:32
閱讀 1979·2019-08-26 11:48
閱讀 1096·2019-08-23 14:40
閱讀 908·2019-08-23 14:33