MongoDB
来自Blueidea
此页尚待完成,或有瑕疵,请量力改善。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
目录
Ubuntu中安装MongoDB
环境:Ubuntu 11.04
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
- sudo vim '/etc/apt/sources.list'
- 添加:deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen
- sudo apt-get update
- sudo apt-get install mongodb-10gen
推荐安装Mongoose,这样nodeJS就能更加方便的操作数据库。
Install Mongoose
首先安装npm:https://github.com/isaacs/npm
然后:npm install mongoose
示例请看:http://www.csser.com/dev/469.html
Windows 环境中启动
首先在官网下载对应压缩包,解压到本地某个目录。
进入bin目录,执行:
mongod --logpath E:\log.txt --logappend --dbpath E:\data\db --serviceName MongoDB --install
目录按需要自行设置。需要注意的是,logpath参数需要指定一个文件,而不是目录。
而后,可以通过命令行 net start MongoDB 来启动服务。
NodeJS中利用Mongoose操作MongoDB
Install NodeJS
前提:须安装Mongoose以便使用下方示例。
参考了来自 http://www.csser.com/ 的文章。
var http = require('http'); var mongoose = require('mongoose'); var Schema = mongoose.Schema, ObjectId = Schema.ObjectId; mongoose.connect('mongodb://127.0.0.1:27017/test'); http.createServer( function (req, res) { /* * createServer方法需要一个回调函数,由于NodeJS基于事件驱动,因此回调函数会调用多次。 * 这里选择在end事件中进行数据写入,当然这不是必须的。 * http://nodejs.org/docs/latest/api/http.html#http.Server */ req.on('end', function() { var Comments = new Schema({ title : String, body : String, date : Date }); var BlogPost = new Schema({ author : ObjectId , title : String, body : String, date : Date, comments : [Comments] }); //创建模型 var BlogPost = mongoose.model('BlogPost', BlogPost); //根据模型产生一个实例 var post = new BlogPost(); //填充数据 post.title = "第一篇Blog"; post.body="Hello MongoDB!"; post.date=new Date(); //插入评论 post.comments.push({ title: '第一条回复' }); //Save post.save(function (err) { if (!err) console.log('保存成功!'); }); res.writeHead(200, {'Content-Type': 'text/html'}); res.end('<h1>Hello MongoDB\n</h1>'); }); }).listen(1337, "127.0.0.1");