博客确定是以用户为中心,包括用户的注册,用户的登陆,用户发表留言,对留言进行评价等等功能,因此,天然离不开数据库。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...
想查看更多文章,请点击个人博客