node学习篇——mongoose

题外话:

             学习mongodb之后,算是了解了什么是非关系型数据库,然而每个操作时需要一直使用数据库连接的语句,即使封装起来也会很繁琐,因此如果能够选择一种驱动来操作mongodb,那node开发的效率及代码整洁度会更高。

    正文:

                从资料中了解到,通过java三大框架的思路将js的对象与数据库mongodb产生关系,并持久化。而这也颠覆了自己的数据库操作,因为学习mongoose之后,根本不需要操作数据库,也就是说没有db的写法。(如果自学估计会一脸懵逼几天)

             首先,通过http://mongoosejs.com/的官方文档我们可以自己使用hello world。然后就会发现全程都在创建类,实例化类,调用类,但是却是实实在在的出现在了数据库中。这便是用操作对象的方式操作数据库。

             接下来,便是mongoose的语法现象。

             1.数据库连接

              var mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/test');

              2.定义模型

               var Cat = mongoose.model('Cat', { name: String });

              3.实例化类

               var kitty = new Cat({ name: 'Zildjian' });

              4.类方法的使用

                 kitty.save(function(err) {

if (err) {

console.log(err);

}else {

console.log('meow');

}});

              5.学习mongoose离不开Schema、model的操作
                Schema:指以文件形式存储的数据库模型骨架;

model:指定义模型,定义的模型会影响数据库。
创建Schema

var studentSchema = new mongoose.Schema({

    name     : {type : String},

    age      : {type : Number},

    sex      : {type : String}

});


定义Schema的静态方法

1.创建静态方法

studentSchema.statics.find = function(name, callback){

    this.model('Student').find({name: name}, callback);   //this.model('Student')指的是当前这个类

};

2.修改静态方法

studentSchema.statics.update =function(conditions,update,options,callback){

    this.model("Student").update(conditions, update, options,callback);

}

定义Schema的实例方法

1.创建实例方法

studentSchema.methods.find = function(name, callback){

    this.model('Student').find({name: name}, callback);   //this.model('Student')指的是当前这个类

};

2.修改静态方法
studentSchema.methods.update =function(conditions,update,options,callback){

    this.model("Student").update(conditions, update, options,callback);

}

















定义Schema的静态方法

1.创建静态方法

studentSchema.statics.find = function(name, callback){

    this.model('Student').find({name: name}, callback);   //this.model('Student')指的是当前这个类

};

2.修改静态方法

studentSchema.statics.update =function(conditions,update,options,callback){

    this.model("Student").update(conditions, update, options,callback);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值