“MongoDB”的版本间的差异

来自Blueidea
跳转至: 导航搜索
 
第39行: 第39行:
  
 
==NodeJS中利用Mongoose操作MongoDB==
 
==NodeJS中利用Mongoose操作MongoDB==
 +
 +
==Install NodeJS==
 +
 +
http://apptob.org/
 +
  
 
前提:须安装Mongoose以便使用下方示例。
 
前提:须安装Mongoose以便使用下方示例。

2011-09-29T09:05:22的最后版本

此页尚待完成,或有瑕疵,请量力改善。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

Ubuntu中安装MongoDB

环境:Ubuntu 11.04


推荐安装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

http://apptob.org/


前提:须安装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");