node.js下mongoose简单操作实例

Mongoose API : http://mongoosejs.com/docs/api.html

// mongoose 链接
var mongoose = require(‘mongoose‘);
var db       = mongoose.createConnection(‘mongodb://127.0.0.1:27017/NodeJS‘);

// 链接错误
db.on(‘error‘, function(error) {
    console.log(error);
});

// Schema 结构
var mongooseSchema = new mongoose.Schema({
    username : {type : String, default : ‘匿名用户‘},
    title    : {type : String},
    content  : {type : String},
    time     : {type : Date, default: Date.now},
    age      : {type : Number}
});

// 添加 mongoose 实例方法
mongooseSchema.methods.findbyusername = function(username, callback) {
    return this.model(‘mongoose‘).find({username: username}, callback);
}

// 添加 mongoose 静态方法,静态方法在Model层就能使用
mongooseSchema.statics.findbytitle = function(title, callback) {
    return this.model(‘mongoose‘).find({title: title}, callback);
}

// model
var mongooseModel = db.model(‘mongoose‘, mongooseSchema);

// 增加记录 基于 entity 操作
var doc = {username : ‘emtity_demo_username‘, title : ‘emtity_demo_title‘, content : ‘emtity_demo_content‘};
var mongooseEntity = new mongooseModel(doc);
mongooseEntity.save(function(error) {
    if(error) {
        console.log(error);
    } else {
        console.log(‘saved OK!‘);
    }
    // 关闭数据库链接
    db.close();
});

// 增加记录 基于model操作
var doc = {username : ‘model_demo_username‘, title : ‘model_demo_title‘, content : ‘model_demo_content‘};
mongooseModel.create(doc, function(error){
    if(error) {
        console.log(error);
    } else {
        console.log(‘save ok‘);
    }
    // 关闭数据库链接
    db.close();
});

// 修改记录
mongooseModel.update(conditions, update, options, callback);
var conditions = {username : ‘model_demo_username‘};
var update     = {$set : {age : 27, title : ‘model_demo_title_update‘}};
var options    = {upsert : true};
mongooseModel.update(conditions, update, options, function(error){
    if(error) {
        console.log(error);
    } else {
        console.log(‘update ok!‘);
    }
    //关闭数据库链接
    db.close();
});

// 查询
// 基于实例方法的查询
var mongooseEntity = new mongooseModel({});
mongooseEntity.findbyusername(‘model_demo_username‘, function(error, result){
    if(error) {
        console.log(error);
    } else {
        console.log(result);
    }
    //关闭数据库链接
    db.close();
});

// 基于静态方法的查询
mongooseModel.findbytitle(‘emtity_demo_title‘, function(error, result){
    if(error) {
        console.log(error);
    } else {
        console.log(result);
    }
    //关闭数据库链接
    db.close();
});

// mongoose find
var criteria = {title : ‘emtity_demo_title‘}; // 查询条件
var fields   = {title : 1, content : 1, time : 1}; // 待返回的字段
var options  = {};
mongooseModel.find(criteria, fields, options, function(error, result){
    if(error) {
        console.log(error);
    } else {
        console.log(result);
    }
    //关闭数据库链接
    db.close();
});

// 删除记录
var conditions = {username: ‘emtity_demo_username‘};
mongooseModel.remove(conditions, function(error){
    if(error) {
        console.log(error);
    } else {
        console.log(‘delete ok!‘);
    }
 
 
    //关闭数据库链接
    db.close();
});

原文http://www.open-open.com/lib/view/open1375885691296.html

时间: 2024-10-31 05:23:25

node.js下mongoose简单操作实例的相关文章

[转] node.js下mongoose简单操作实例

Mongoose API : http://mongoosejs.com/docs/api.html // mongoose 链接 var mongoose = require('mongoose'); var db = mongoose.createConnection('mongodb://127.0.0.1:27017/NodeJS'); // 链接错误 db.on('error', function(error) { console.log(error); }); // Schema 结

[js高手之路]Node.js+jade+mongoose实战todolist(分页,ajax编辑,删除)

该系列文章索引: [js高手之路]node js系列课程-创建简易web服务器与文件读写 [js高手之路]node js系列课程-图解express+supervisor+ejs用法 [js高手之路]Node.js实现简易的爬虫-抓取博客所有文章列表信息 [js高手之路]Node.js模板引擎教程-jade速学与实战1-基本用法 [js高手之路]Node.js模板引擎教程-jade速学与实战2-流程控制,转义与非转义 [js高手之路]Node.js模板引擎教程-jade速学与实战3-mixin

node.js 下依赖Express 实现post 4种方式提交参数

上面这个图好有意思啊,哈哈, v8威武啊.... 在2014年的最后一天和大家分享关于node.js 如何提交4种格式的post数据. 上上一篇说到了关于http协议里定义的4种常见数据的post方法 ,详细介绍请点击查看. 分别是这四种: www-form-urlencoded, form-data, application/json, text/xml Express 依赖 bodyParser 对请求的包体进行解析,默认支持:application/json, application/x-

Practical Node.js (2018版) 第7章:Boosting Node.js and Mongoose

参考:(mongoose和mongodb模块的区别)https://www.jianshu.com/p/87bcf4fdb479 参考: mongoose官网(https://mongoosejs.com/docs/models.html) 参考: 英文:Boosting Node.js和MongoDB with Mongoose 简介:mongoose Mongoose is a fully developed object document mapping (ODM) library for

npm 是node.js下带的一个包管理工具

npm 是node.js下带的一个包管理工具          npm install -g webpack webpack是一个打包工具 gulp是一个基于流的构建工具,相对其他构件工具来说,更简洁更高效 npm install -g gulp //全局安装 npm install --save-dev gulp //安装到当前项目并在package.json中添加依赖cnpm install -g -vue-cli 安装脚手架 webpack是模块化管理的工具,使用webpack可实现模块按

LINUX下用Nginx和Node.js构建一个简单的项目(1)

由于我之前租了一个阿里云服务器,最近又开始学学Node.js,因此准备写点东西把过程记录一下.至于服务器上的Web环境安装阿里云有十分详细的安装说明,这里就略过了... 以下是我的Web环境: 服务器系统为LINUX 64位 Web:nginx Nginx:1.4.4 Php:5.3.29 Mysql:5.1.73 1.安装Nodejs 首先需要查看系统的Python和Make版本信息是否符合Node.js的安装环境.指令如下: # python # make -v 在官网下载nodejs(ht

[node.js]express+mongoose+mongodb的开发笔记

时间过得很快,6月和7月忙的不可开交,糟心的事儿也是不少,杭州大连来回飞,也是呵呵. 希望下个阶段能沉浸下来,接着学自己想学的.记一下上几周用了几天时间写的课设.因为课设的缘故,所以在短时间里了解下express+mongodb的组合,给APP端搭了个简易的服务器,也开了后台网站的web服务.简单总结一下开发过程中遇到的坑. 一.关于express了解node.js有半年多,第一次用node.js的框架来写server,了解不是很深,简单看了一下文档之后就可以上手了,开发入门难度低.1.运行ex

基于Node.js + jade + Mongoose 模仿gokk.tv

原文摘自我的前端博客,欢迎大家来访问 http://www.hacke2.cn 关于gokk 大学的娱乐活动基本就是在寝室看电影了→_→,一般都会选择去goxiazai.cc上看,里面的资源多,质量高 .站长会推荐评分很高广受好评的电影给大家免费下载,整体来说真是不错,但前两月由于版权问题被迫转型 这也是没办法的事,程序员更应该尊重版权问题,我们也能理解,后来站长又开了gokk个不是给地址让你 下载,而是将网络一些优秀视频站点资源提供出来观看,质量变低了,好怀念以前的goxiazai啊.. 最近

《Node.js实战》博客实例 express4.x

大致看了一阵子nodejs的书,对语法有初步的了解.但是还是写不出个实例来.最近学长给我的这本书感觉挺入门的<Node.js实战>电子工业出版社.毕竟图书馆借的,出版时间已经是两年前了.很多代码都更新了.特别是express 4.x相对与express 3.x有很多的修改.比如把中间件独立出来.好处是有.这样express的更新就不用受这些中间件的影响 坏处也许主要是对我这种新手吧.大部分教材都是express 3.x甚至是 2.x 的.这样学习起来就有困难.也许不会有人看到这个.即使解决不了