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