Node.js使用Mongoose包操作MongoDB数据库
1. 安装Mongoose
npm install mongoose
2. 使用
2.1 创建连接
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
2.2 获取数据库的一些通知信息
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function(callback){
//do something
});
2.3 创建Schmema和Model
var kittySchema = mongoose.Schema({
name: String
});
var Kitten = mongoose.model('Kitten', kittySchema)
var silence = new Kitten({ name: 'Silence' })
console.log(silence.name); // 'Silence'
2.4 为Model增加“行为”
kittySchema.methods.speak = function () {
var greeting = this.name
? "Meow name is " + this.name
: "I don't have a name"
console.log(greeting);
};
var Kitten = mongoose.model('Kitten', kittySchema);
var fluffy = new Kitten({ name: 'fluffy' });
fluffy.speak() // "Meow name is fluffy"
2.5 查找
Kitten.find(function (err, kittens) {
if (err) return console.error(err);
console.log(kittens)
});
Kitten.find({ name: /^Fluff/ }, callback)
2.6 保存或者更新
var kitty = new Cat({ name: 'Zildjian' });
kitty.save(function (err) {
if (err) // ...
console.log('meow');
});
2.7 删除
TaskModel.findById(req.params.id,function(err, task){
if(!err && task){
task.remove(function(){
res.redirect('/todo/tasks');
});
}
else{
res.end('not found.')
}
})
参考:
1. Mongoose-Getting Started http://mongoosejs.com/docs/index.html
2. Mongoose-docs http://mongoosejs.com/docs/guide.html
3. Queries http://mongoosejs.com/docs/queries.html
附代码:
var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var connStr = 'mongodb://localhost/todo_development';
mongoose.connect(connStr);
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function (callback) {
console.log('db open...');
});
var TaskSchema = new Schema({
task: String
});
var TaskModel = mongoose.model('Task', TaskSchema);
console.log('model Task is created.');
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('todo/index', { title: 'To Do List' });
});
router.get('/tasks', function(req, res, next){
//从数据库加载todos
TaskModel.find({}, function(err, docs){
if(!err){
res.render('todo/tasks/index',{
titile: 'Todos index view',
docs:docs
});
}else{
console.log(err);
res.render('todo/tasks/index',{
titile: 'Error happens when load todos.',
docs:[]
});
}
});
});
router.get('/tasks/new', function(req, res, next){
res.render('todo/tasks/new', {
title: 'New Task'
});
});
router.post('/tasks/new', function(req, res){
//save to db
var task = new TaskModel(req.body);
task.save(function(err){
if(!err){
res.redirect('/todo/tasks');
}else{
res.redirect('/todo/tasks/new');
console.log(err);
}
});
});
router.get('/tasks/:id/edit', function(req, res, next){
var task = TaskModel.findById(req.params.id,function(err, task){
if(!err){
res.render('todo/tasks/edit', {
title: 'Edit Task',
task: task
});
}
else{
res.end('not found.')
}
})
});
router.get('/tasks/:id/delete', function(req, res, next){
var task = TaskModel.findById(req.params.id,function(err, task){
if(!err && task){
task.remove(function(){
res.redirect('/todo/tasks');
});
}
else{
res.end('not found.')
}
})
});
router.post('/tasks/edit', function(req, res){
//save to db
var task = new TaskModel(req.body);
task.save(function(err){
if(!err){
res.redirect('/todo/tasks');
}else{
res.redirect('/todo/tasks/' + req.body.id + '/edit');
console.log(err);
}
});
});
module.exports = router;
Node.js使用Mongoose包操作MongoDB数据库的更多相关文章
- mongoose之操作mongoDB数据库
mongoose是node.js操作mongoDB数据库的一种工具,借助于mongoose,我们可以便捷的完成一些数据库的基本操作,基本使用如下: 1.安装 npm install mongoose ...
- nodeJS中使用mongoose模块操作mongodb数据库
在实际运用中,对于数据库的操作我们不可能一直在cmd命令行中进行操作,一般情况下需要在node环境中来操作mongodb数据库,这时就需要引入mongoose模块来对数据库进行增删改查等操作. 首先, ...
- node.js下mongoose简单操作实例
Mongoose API : http://mongoosejs.com/docs/api.html // mongoose 链接var mongoose = require('mongoose'); ...
- [转] node.js下mongoose简单操作实例
Mongoose API : http://mongoosejs.com/docs/api.html // mongoose 链接 var mongoose = require('mongoose') ...
- node.js+express+mongoose实现用户增删查改案例
node.js+express+mongodb对用户进行增删查改 一.用到的相关技术 使用 Node.js 的 express 框架搭建web服务 使用 express 中间件 body-parse ...
- Node.js 学习笔记之四:使用数据库
这部分示例将示范SQLite3.MongoDB这两种不同类型的数据库在 Node.js 中的使用方法.首先,我们要在code目录下执行mkdir 06_database命令来创建用于存放这一组示例的目 ...
- NodeJs连接操作MongoDB数据库
NodeJs连接操作MongoDB数据库 一,介绍 MongoDB是一种文档导向数据库管理系统,由C++撰写而成.介绍如何使用 Node.js 来连接 MongoDB,并对数据库进行操作. Mongo ...
- 二十六、Nodejs 操作 MongoDb 数据库
一. 在 Nodejs 中使用 Mongodb 前面的课程我们讲了用命令操作 MongoDB,这里我们看下如何用 nodejs 来操作数据库需要引包: npm install mongodb --sa ...
- NodeJS操作MongoDB数据库
一.node.js对于mongodb的基本操作 1.数据库的开机 首先我们要先对数据库进行开机的操作,建立一个文件夹用于存放数据库文档.如D:\mongo,接下去在cmd当中键入命令-> mon ...
随机推荐
- ROS(Robot Operating System)常用环境变量介绍
本文简单介绍ROS系统中常用的环境变量用途及设置方式.ROS系统环境中除了必须配置的环境变量以外,其他的也是十分有用,通过修改变量路径,可以设置ROS系统中log文件存放路径,单元测试结果存放路径等. ...
- dev gridcontrol纵向合并单元格设置
1.要设置gridcontrol中指定列(columns中选中指定列)的AllowMerge属性为true; 2.要设置gridview中AllowCellMerge的属性为true; 3.如果只合并 ...
- iostat命令详解
iostat iostat用于输出CPU和磁盘I/O相关的统计信息. 命令格式: iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ devic ...
- DB2和Oracle区别
转 http://blog.chinaunix.net/uid-7374279-id-2057574.html 写在前面:今天客户来访(日本人),问我DB2和Oracle区别.因为不是DBA(勉强的理 ...
- NPOI2.0学习(二)
如果你要编辑的行和单元格,原本没有值,或者从未创建过的,就必须先创建. //在第二行创建行 IRow row = sheet.CreateRow(); //在第二行的第一列创建单元格 ICell ce ...
- Social Emotional Computing
from:数理情感学 http://choudh.blogchina.com/2556171.html 第五节 情感的三要素 人对于某一事物的情感,不仅取决于该事物的品质特性(如物理特性.化学特性. ...
- 简单解释CDATA
在网页源代码中,经常会看见如下代码: <![CDATA[其他内容]]>,其中其他内容一般是脚本. 为什么要用这个标签? 这个标签的意思是Character-Data,即字符数据. 目的,告 ...
- 由 excel 转换为 markdown,及收获
由 excel 转换为 markdown,及收获 1 问题 构建之法(现代软件工程)东北师大站[http://www.cnblogs.com/younggift/]的每周学生作业成绩,执行教学团队[h ...
- Beta--项目冲刺第六天
胜利在望-- 队伍:F4 成员:031302301 毕容甲 031302302 蔡逸轩 031302430 肖阳 031302418 黄彦宁 会议内容: 1.站立式会议照片: 2.项目燃尽图 3.冲刺 ...
- Ajax深入学习
1.ajax如何减轻服务器的负担的? 2.如何合理的使用ajax? 3.一个页面一进来等文档加载完毕:走ajax请求去了? 用户体验真的好吗?