nodejs mongoose示例

MongoDB是一種文件導向数据库管理系统,由C++撰寫而成,以此来解决应用程序开发社区中的大量现实问题。

安装mongoose:npm install -g mongoose

mongoose@3.8.20 C:\Users\ucloud01\AppData\Roaming\npm\node_modules\mongoose
├── regexp-clone@0.0.1
├── ms@0.1.0
├── hooks@0.2.1
├── sliced@0.0.5
├── muri@0.3.1
├── mpath@0.1.1
├── mpromise@0.4.3
├── mquery@0.8.0 (debug@0.7.4)
└── mongodb@1.4.12 (readable-stream@1.0.33, kerberos@0.0.4, bson@0.2.16)

express:4.10.6

mongodb:2.6.6

nodejs:0.10.32

连接数据库

修改routes/index.js:

var express = require('express');
var router = express.Router();

var mongoose = require('mongoose');

/* GET home page. */
router.get('/', function(req, res) {
  res.render('index', { title: 'Express' });
});

router.get('/connect', function(req, res) {
  mongoose.connect("mongodb://localhost/test", function(err) {
    if(err) {res.send(err.message);}
    res.send("connect success");
  });
});

module.exports = router;
运行并访问http://localhost:3000/connect可以看到 connect success的输出

插入数据

修改routes/index.js:

var express = require('express');
var router = express.Router();

var mongoose = require('mongoose');
var Cat = mongoose.model('Cat', {
  id: Number,
  name: String
});
/* GET home page. */
router.get('/', function(req, res) {
  res.render('index', { title: 'Express' });
});

router.get('/connect', function(req, res) {
  mongoose.connect("mongodb://localhost/test", function(err) {
    if(err) {res.send(err.message);}
    res.send("connect success");
  });
});

router.get('/insert', function(req, res) {
  var kitty = new Cat({
    id: 01,
    name: "shawn"
  });

  kitty.save(function(err, data, numberAffected) {
    if (err) {res.send(err)}
    var html = '<p> new data is: ' + JSON.stringify(data) + '</p>';
    html += '<p>num of data effected is: ' + numberAffected + '</p>';
    res.send(html);
  });
});
module.exports = router;
访问http://localhost:3000/insert


同时查看数据库内数据:

可以看到效果是新建了一个叫cats的表(文档)并插入了一条数据

查询数据

修改routes/index.js:

var express = require('express');
var router = express.Router();

var mongoose = require('mongoose');
var Cat = mongoose.model('Cat', {
  id: Number,
  name: String
});
/* GET home page. */
router.get('/', function(req, res) {
  res.render('index', { title: 'Express' });
});

router.get('/connect', function(req, res) {
  mongoose.connect("mongodb://localhost/test", function(err) {
    if(err) {res.send(err.message);}
    res.send("connect success");
  });
});

router.get('/save', function(req, res) {
  var kitty = new Cat({
    id: 01,
    name: "shawn"
  });

  kitty.save(function(err, data, numberAffected) {
    if (err) {res.send(err)}
    var html = '<p> new data is: ' + JSON.stringify(data) + '</p>';
    html += '<p>num of data effected is: ' + numberAffected + '</p>';
    res.send(html);
  });
});

router.get('/find', function(req, res) {
  Cat.find({id: 1},function(err, docs) {
    if (err) {res.send(err)}
    var html = '<p>data found: ' + JSON.stringify(docs);
    res.send(html);
  });
});

module.exports = router;

访问http://localhost:3000/find


修改数据

修改routes/index.js:
var express = require('express');
var router = express.Router();

var mongoose = require('mongoose');
var Cat = mongoose.model('Cat', {
  id: Number,
  name: String
});
/* GET home page. */
router.get('/', function(req, res) {
  res.render('index', { title: 'Express' });
});

router.get('/connect', function(req, res) {
  mongoose.connect("mongodb://localhost/test", function(err) {
    if(err) {res.send(err.message);}
    res.send("connect success");
  });
});

router.get('/save', function(req, res) {
  var kitty = new Cat({
    id: 01,
    name: "shawn"
  });

  kitty.save(function(err, data, numberAffected) {
    if (err) {res.send(err)}
    var html = '<p> new data is: ' + JSON.stringify(data) + '</p>';
    html += '<p>num of data effected is: ' + numberAffected + '</p>';
    res.send(html);
  });
});

router.get('/find', function(req, res) {
  Cat.find({id: 1},function(err, docs) {
    if (err) {res.send(err)}
    var html = '<p>data found: ' + JSON.stringify(docs);
    res.send(html);
  });
});

router.get('/update', function(req, res) {
  mongoose.connect("mongodb://localhost/test");
  Cat.update({id: 1}, {$set:{name: "shawn2"}}, {upsert: true}, function(err, numberEffected, raw) {
    if(err) {res.send(err);}
    var html = '<p>data after updated: ' + JSON.stringify(raw) + '</p>';
    console.log("get /update2");
    html = html + '<p>num of data effected :' + numberEffected +'</p>';
    res.send(html);
  });
});

module.exports = router;

访问:

数据库:


删除数据

修改routes/index.js:
var express = require('express');
var router = express.Router();

var mongoose = require('mongoose');
var Cat = mongoose.model('Cat', {
  id: Number,
  name: String
});
/* GET home page. */
router.get('/', function(req, res) {
  res.render('index', { title: 'Express' });
});

router.get('/connect', function(req, res) {
  mongoose.connect("mongodb://localhost/test", function(err) {
    if(err) {res.send(err.message);}
    res.send("connect success");
  });
});

router.get('/save', function(req, res) {
  var kitty = new Cat({
    id: 01,
    name: "shawn"
  });

  kitty.save(function(err, data, numberAffected) {
    if (err) {res.send(err)}
    var html = '<p> new data is: ' + JSON.stringify(data) + '</p>';
    html += '<p>num of data effected is: ' + numberAffected + '</p>';
    res.send(html);
  });
});

router.get('/find', function(req, res) {
  Cat.find({id: 1},function(err, docs) {
    if (err) {res.send(err)}
    var html = '<p>data found: ' + JSON.stringify(docs);
    res.send(html);
  });
});

router.get('/update', function(req, res) {
  mongoose.connect("mongodb://localhost/test");
  Cat.update({id: 1}, {$set:{name: "shawn2"}}, {upsert: true}, function(err, numberEffected, raw) {
    if(err) {res.send(err);}
    var html = '<p>data after updated: ' + JSON.stringify(raw) + '</p>';
    console.log("get /update2");
    html = html + '<p>num of data effected :' + numberEffected +'</p>';
    res.send(html);
  });
});

router.get('/delete', function(req, res) {
  mongoose.connect("mongodb://localhost/test");
  Cat.remove ({
    id: 1
  }, function(err) {
  if(err) {res.send(err);}
  res.send("delete suncces");
  });
});

module.exports = router;
访问:

实际中频繁读写的话连接一次数据库就可以了,因为mongoose是长连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值