Mongoose连接MongoDB数据库

相信不少人对于LAMP的技术栈感觉到很熟悉,现在Nodejs的流行框架MEAN也渐入人心,这里的M可以指的是MySQL,MariaDB,也可以是MongoDB这种NoSQL数据库,广告说巧克力和下雨天更配哟,Nodejs和MogoDB搭配会更好,就像PHP和Apache的密切关系。这里选择的是MongoDB,MongoDB的数据库操作有MonngoDB官方的原生驱动,这里会有所偏向更简单易记,方便操作的Mongoose这种orm,下面是参考了诸多的论坛的帖子,总结了一段DEMO。博主已经测试过能够使用。为方便使用也为了以后便于查阅。

//引入mongoose第三方模块
var mongoose=require('mongoose');
//没有mongoose.Promise=global.Promise会出现错误,意思就是mongoose自带的promise过期了
//然后需要v8引擎的promise
mongoose.Promise=global.Promise;
// 调试模式是mongoose提供的一个非常实用的功能,用于查看mongoose模块对mongodb
// 操作的日志,一般开发时会打开此功能,以便更好的了解和优化对mongodb的操作
mongoose.set('debug',true);
//node连接数据库
//一般默认没有user和password
var db=mongoose.connect('mongodb://localhost:/MyDB');
db.connection.on("error",function(error){
    console.log("数据库连接失败:"+error);
});
db.connection.on("open",function(){
    console.log("数据库连接成功");
});
var Schema=mongoose.Schema;
//定义模式Student_Schema
//{versionKey:false}是否建立文档的版本
var Student_Schema=new Schema({
    name:String,
    id:Number,
    phone:String,
    date:Date
},{
    versionKey:false
});
//定义模型Student,注意数据库存的是students
var Student=mongoose.model("Student",Student_Schema);
//实体的实例化
var kiwis=new Student({
    name:"kiwis",
    id:123,
    phone:"12344556661",
    date:Date.now()
});
//save()方法保存document,如果mongodb里面没有,则会自动创建
kiwis.save(function(error){});
//CURD操作方法
//{}是取得所有的文档,第一参数定义条件,第二参数是回调函数,docs是返回的查找结果,结果形式是一个json数据数组{}
//Model.findById(id,[projection],[options],[callbacck]);
//Model.findOne([conditions],[projection],[options],[callback]);
Student.find({},function(err,docs){});
//update();第一参数是条件,第二参数是修改的内容
kiwis.update({name:"kiwis"},{id:456,phone:"12345678910"},function(error){});
//remove()
kiwis.remove({
    name:"kiwis"
},function(error){
  console.log(error);
});

你可能感兴趣的:(Mongoose连接MongoDB数据库)