mongoose的基本操作
Posted ConfigSzy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongoose的基本操作相关的知识,希望对你有一定的参考价值。
Mongoose库简而言之就是对node环境中MongoDB数据库操作的封装,通过操作javascript对象来操作数据库,代码会显得特别清晰。
一丶 npm install mongoose --save
下载Mongoose(其中包括了mongodb,不用重复Require)
二丶官网提供的hello模板
var mongoose = require(‘mongoose‘); //引入mongoose mongoose.connect(‘mongodb://localhost/test‘); // 连接数据库 var Cat = mongoose.model(‘Cat‘, { name: String }); // 创建一个Model模型 也就相当于创建了一个cats表 var kitty = new Cat({ name: ‘Zildjian‘ }); //实例化一个Model模型 ,相当于创建一个Kitty集合 kitty.save(function (err) { //save()方法,保存该对象,也就是向数据库增加; if (err) { console.log(err); } else { console.log(‘meow‘); } });
三丶mongoose的具体使用
1,连接数据库
var mongoose = require(‘mongoose‘); //创建数据库连接 var db=mongoose.createConnection(‘mongodb://127.0.0.1:27017/student‘); //监听open事件 db.once(‘open‘, function (callback) { console.log("数据库成功连接"); });
2丶定义模型
//创建了一个schema结构。 var studentSchema = new mongoose.Schema({ name : {type : String}, age : {type : Number}, });
var studentModel = db.model(‘Student‘, studentSchema);
3丶增
mongooseModel.create({name:‘XiaoMIng‘,age:‘18‘}, function(error){ if(error) { console.log(error); } else { console.log(‘成功添加小明同学信息‘); } // 关闭数据库链接 db.close(); });
4丶删
mongooseModel.remove({name:‘XiaoMing‘}, function(error){ if(error) { console.log(error); } else { console.log(‘成功删除小明同学信息‘);
} //关闭数据库链接 db.close(); });
5丶改
var conditions = {name: ‘XiaoMing‘}; var update = {$set : {age : 27}}; var options = {}; mongooseModel.update(conditions, update, options, function(error){ if(error) { console.log(error); } else { console.log(‘成功修改小明的的年龄‘); } //关闭数据库链接 db.close(); });
6丶查
var select = {name: ‘小明‘}; // 查询条件
mongooseModel.find(select,function(error, result){ if(error) { console.log(error); } else { console.log(result); } //关闭数据库链接 db.close(); });
四丶自定义静态方法
//自定义一个通过年龄查询学生的方法
mongooseSchema.statics.findFromage = function(age, callback) { this.model(‘student‘).find({age: age}, callback); }
//通过年龄查询所有学生信息
student.findFromage(‘30‘,function(err,result){ console.log(result) })
以上是关于mongoose的基本操作的主要内容,如果未能解决你的问题,请参考以下文章