好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

mongoose - 让node.js高效操作mongodb

mongoose = require( " mongoose " ); // 连接字符串格式为mongodb: // 主机/数据库名 mongoose.connect( ‘ mongodb://localhost/test ‘ );

这里没太多好解释的,安装mongoose后,引入模块连接到本地的mongodb的test表,这里要注意了,mongo数据库是运行状态

 

 

2. 存储 数据

 var  Schema =  mongoose.Schema;
  //  骨架模版 
 var  movieSchema =  new   Schema({
    doctor   : String,
    title    : String,
    language : String,
    country  : String,
    year     : Number,
    summary  : String,
    poster   : String,
    flash    : String
})
  //  模型 
 var  Movie = mongoose.model( ‘  Movie  ‘  , movieSchema);
  //  存储数据 
 var  moive =  new   Movie({
    title:   ‘  黑衣人三  ‘  ,
    doctor:   ‘  史密斯  ‘  ,
    year:   2018  ,
    flash:   ‘  http://player.youku.com/player.php/sid/XNjA1Njc0NTUy/v.swf  ‘  ,
    country:   ‘  美国  ‘  ,
    language:   ‘  英语  ‘  ,
    summary:   ‘  好片  ‘  
})
  //  保存数据库 
 moive.save(function(err) {
      if   (err) {
        console.log(  ‘  保存失败  ‘  )
          return  ;
    }
    console.log(  ‘  meow  ‘  );
}); 

以上是最简单的数据操作了

流程就是:通过Schema创建一个模式movieSchema ,通过模式movieSchema创建一个模型Movie,通过模型Movie写入数据,通过save方法保存

定义schema->创建model->实例化方法

表 –》 合集 –》 文档

这里涉及几个名词概念Schema与 Model

 

3.Schema与 Model

Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力 Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对

虽然模式(Schema)在MongoDB的存储中并不是必须的,但是一般来说为了文档的整齐一致我们在Mongoose中还是会用到模式。可以说,Mongoose中的一切都从定义模式开

不像传统的关系型数据库一样,比如mysql,连接好数据后直接有把sql语句丢到一个指定的方法中就执行了,这里会有Schema的抽象概念

Schema它类似于关系数据库的表结构,可以理解为数据库模型骨架

Schema可以看作工厂中模具一样,好比一个茶杯,喝水是茶杯最终的功能,茶杯本身就像是Model,那么茶杯的批量生产是需要靠工厂的模具成型的,这就像是Schema了

Schema不仅定义了文档结构和使用性能,还可以有扩展插件、实例方法、静态方法、复合索引、文档生命周期钩子

 

4. CURD操作

Model可以看到关系型数据库中的表,那么通过new Model出来的实例document文档对应的则是关系数据库中表的一行记录

document有许多内置的实例方法. 可以直接执行增删改查操作

增加数据

 //模型 
 var  Movie = mongoose.model( ‘  Movie  ‘  , movieSchema);  
 var  moive =  new   Movie({
    title:   ‘  黑衣人三  ‘  ,
    doctor:   ‘  史密斯  ‘  ,
    year:   2018  ,
    flash:   ‘  http://player.youku.com/player.php/sid/XNjA1Njc0NTUy/v.swf  ‘  ,
    country:   ‘  美国  ‘  ,
    language:   ‘  英语  ‘  ,
    summary:   ‘  好片  ‘  
})
  //  保存数据库 
 moive.save(function(err) {
      if   (err) {
        console.log(  ‘  保存失败  ‘  )
          return  ;
    }
    console.log(  ‘  meow  ‘  );
}); 

在这里我们通过对模型Movie实例化生成了一个叫moive的文档,并使用save方法将它存储到了集合

 

修改数据

 User.update({_id: oneUser._id}, {
    $  set  : {name: oneUser.name,password:oneUser.password}
}, function(err) {
      if  (err){
        console.log(err)
          return  
    }
    console.log(  ‘  更新成功  ‘  )
}); 

更新的数据比较少用$set,可用性还是很好

 

删除数据

 User.remove({
    _id: id
}, function(err) {
      if   (err) {
        console.log(err)
          return  
    }
    console.log(  ‘  删除成功  ‘  )
}); 

 

简单的数据库的连接,跑通了整个流程,具体的可以查看API

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

附上git上mongoose的一个简单的测试案例

https://github.com/JsAaron/node_movie/tree/master/data

支持增加、修改、删除数据

win平台安装:

1. 首先要安装好MongoDB安装

2. 进入目录,通过npm install 安装模块依赖、grunt、mongoose、express、jade

3. 执行命令grunt,自动检测文件改动重启服务

4. 打开http://localhost:3000/即可

mongoose - 让node.js高效操作mongodb

标签:

查看更多关于mongoose - 让node.js高效操作mongodb的详细内容...

  阅读:26次