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 ...
随机推荐
- [BZOJ3144][HNOI2013]切糕(最小割)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3144 分析:神题不解释 http://www.cnblogs.com/zig-zag/ ...
- latex中页面距离的设置
1.页面设置 a4 会给你一个较小的页面,为了使用更多的控制,可用 geometry宏包和命令 \layout . 2.改变长度 在latex里改变长度的命令是 \addtolength 和 \set ...
- NIO框架Mina学习
前言: 找了篇文章看了看,nio框架数Mina用的最多! 代码: 服务端: package com.mina; import java.net.InetSocketAddress; import ja ...
- AlertDialog之常见对话框(单选对话框、多选对话框、进度条对话框)
单选对话框,顾名思义就是只能选一项(setSingleChoiceItems(Items,)) public void click(View v){ //创建对话框类 AlertDialog.Buil ...
- Activity之多启动图标
如果想要Activity有多个启动图标,只需要在manifest.xml文件中配置一下就可以了,直接上代码: 1 <application 2 android:allowBackup=" ...
- No goals have been specified for this build
在pom.xml文件中build后面加上<defaultGoal>compile</defaultGoal>
- 我的第一个DMZ方案实践
方案提出的初衷:外网需要定时和不定时推送数据到内网服务器(只要求数据到达内网,没有要求直接连接到内网) 为什么不是直连到内网:每个人第一想到的是不安全,是的,没错不安全.内网的应用和外网的应用最明显的 ...
- 拼接sql是陷阱
项目临时新增一个功能,此时我们习惯自己拼接一个sql. 更可怕的是,后期用户要求新增查询条件,甚至有上10个查询条件,这时的拼接更头疼,if append append(" status=@ ...
- 长串英文数字强制折行解决办法css
overflow: hidden; white-space: normal; word-warp: break-word; word-break: break-all;/*Only work in I ...
- Apache Shiro和Spring Security的详细对比
参考资料: 1)Apache Shiro Apache Shiro:http://shiro.apache.org/ 在Web项目中应用 Apache Shiro:http://www.ibm.com ...