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 ...
随机推荐
- U-boot与linux的关系
基本上没有啥关系,U-boot的话你也知道,说白了就像是Dos工具箱,本身算是个精简的Linux系统了,主要是负责硬件的初始化和引导,本身带有一些工具,作为引导程序,常作为嵌入式设备的引导.当真正的系 ...
- JavaScript中的类型转换(二)
说明: 本篇主要讨论JavaScript中各运算符对运算数进行的类型转换的影响,本文中所提到的对象类型仅指JavaScript预定义的类型和程序员自己实现的对象,不包括宿主环境定义的特殊对象(比如浏览 ...
- Code First操作Mysql数据库
前面博客也讲了,自己做一个网站,选用的是MVC+EF Code First+MySql+EasyUI,先说下技术选型.一.为什么选择MVC? 因为之前自己做的系统大部分是webForm,MVC的之前也 ...
- XML的解析和保存
1.XML(extensible markup language;XML ) 定义:,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. XML语法规范: 标 ...
- 【JavaEE企业应用实战学习记录】struts2登录
<%-- login.jsp Created by IntelliJ IDEA. User: Administrator Date: 2016/10/6 Time: 16:26 To chang ...
- linux中级-JAVA企业级应用TOMCAT实战
1. Tomcat简介 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun和其他一些公司及个人共 ...
- git工作流程
git工作流程 一般工作流程如下: 克隆 Git 资源作为工作目录. 在克隆的资源上添加或修改文件. 如果其他人修改了,你可以更新资源. 在提交前查看修改. 提交修改. 在修改完成后,如果发现错误,可 ...
- Android Studio 解决更新慢的问题
Android Studio 解决更新慢的问题 最近在一些群里有伙伴们反应工具更新慢,由于国内网络对google限制的原因,android studio更新一直是个老大难的问题,为了,提高sdk下载的 ...
- Android NestedScrolling与分发机制
在Android5.0之间要实现控件的嵌套滑动,都是要自己处理View事件即分发机制. 共有三个方法: dispatchTouchEvent().onInterceptTouchEvent()和 ...
- Mycat+Mysql 插入数据报错 i[Err] 1064 - partition table, insert must provide ColumnList
使用Navicat连接Mycat 8066 成功插入了分库表和全局表 1.全局表 sql如下: '); '); '); 插入成功! 2.分库表 sql如下: ', null, null, null, ...