mongoose

mongodb?
mongoose?

mongoose其实就是对mongoDB的封装,类似于jquery与js的关系。是mongoDB的一个对象模型工具,是基于node-mongodb-native开发的mongoDB的nodejs驱动,可以在异步的环境下执行。同时它也是针对mongoDB操作的一个对象模型库,封装了mongoDB对文档的一些增删改查等常用方法,让nodejs操作mongoDB数据库变得更加容易。总而言之,是用于连接nodeJS与 mongoDB。

新建项目文件夹test
  • npm init 生成package.json文件
  • npm install mongoose --save-dev 安装mongoose
    新建mongoose.js 写下面的代码
    /**
     * 连接数据库
     */
    
    var mongoose = require('mongoose') // 引入 mongoose
    var url = "mongodb://localhost:27017/myapp"; // 本地数据库地址,myapp为数据库
    mongoose.connect(url);
    // connect() 返回一个状态待定(pending)的连接,可以用来判断连接成功或失败
    var db = mongoose.connection; 
    db.on('error', console.error.bind(console, '连接失败'));
    db.once('open', function() {
      console.log("成功连接到 "+url)
    });
    
    
    运行node mongoose 显示:成功连接到 mongodb://localhost:27017/myapp
  • 建立Schema。在Mongoose 里,一切都始于Schema

    mongoose.Schema方法用来定义数据集的格式(schema)
    mongoose.model方法将格式分配给指定的数据集。

    var userSchema = mongoose.Schema({
        name:String,
        age:Number
    })
    //我们得到了一个带有 String 类型 name 属性的 schema。接着我们需要把这个 schema 编译成一个 Model
    //将schema编译为model构造函数,mydatas为集合名
    var User = mongoose.model('mydatas', userSchema); 
    

这样,Schema就建立完成,接下来使用mongoose,来进行数据的增删改查:

增删改查
  • var newUser = new User({name: "hello1",age:20});
    /**
     * 插入数据
     */
    newUser.save(function(err){
      if(err){
        return;
      }
      console.log("添加成功!")
    })
    
  • /**
     * 删除数据(用remove时会提示用deleteOne, deleteMany, or bulkWrite instead代替)
     */
     User.deleteMany({name:"linda"},function(err){
       if(err){
         return;
       }
     })
    
  • /**
     * 修改
     * Model.update(conditions, doc, [options], [callback])
     * conditions:查询条件;doc:需要修改的数据,不能修改主键(_id);options:控制选项;callback:回调函数,返回的是受影响的行数。
     */
     User.updateMany({name:"anna"},{name:"alice"},function(err,user){
       if(err){
         return;
       }
     })
    
  • /*
     *查询数据
     *Model.find(conditions, [projection], [options], [callback])
     *conditions:查询条件;projection:控制返回的字段;options:控制选项;callback:回调函数。
     */
     User.findOne({name:"anna"},function(err,user){
       if(err){
         return ;
       }
       console.log(user)
       //打印整条数据
     });
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值