• Mongoose学习(1)


    1、Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力

       Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对

       Entity : 由Model创建的实体,他的操作也会影响数据库

    2、SchemaModelEntity的关系请牢记,Schema生成ModelModel创造EntityModelEntity都可对数据库操作造成影响,但ModelEntity更具操作性。

    3、下面我们来一段代码理解一下

       
    var UserSchema = new mongoose.Schema({
          username:String,   //定义一个属性name,类型为String
          password: String
    });
    var UserModel = db.model('user',UserSchema);
    var userEntity = new UserModel({name:'lsg'});
    

     

    4、创建数据库连接

    var mongoose = require('mongoose');    //引用mongoose模块
     var db = mongoose.createConnection('127.0.0.1','test'); //创建一个数据库连接
    

      

    5、打开数据库

    db.on('error',console.error.bind(console,'连接错误:'));
        db.once('open',function(){
          //一次打开记录
        });
    

      

    6、接下来我就完成一个CRUD(create, read, update, delete )的例子

    7、数据更新,这里我们有很多方法,接下来我介绍一种是常用的

    UserModel.findById(id,function(err,user){
          user.username = 'lsg';
         user.password = '123456';
          user.save(function(err, data){});
        });
    

    8、查询,分为直接查询和链式查询

       

    UserModel.findOne({'username':'lsg'},'some select',function(err,user){
          //如果err==null,则user就能取到数据
         //some select  要返回的字段 如 username password 
        });
    

    链式的我直接上官方列子http://mongoosejs.com/docs/2.7.x/docs/finding-documents.html

    Model
    .where('age').gte(25)
    .where('tags').in(['movie', 'music', 'art'])
    .select('name', 'age', 'tags')
    .skip(20)
    .limit(10)
    .asc('age')
    .slaveOk()
    .hint({ age: 1, name: 1 })
    .exec(callback);
    

      

    9、数据新增,同样只介绍一种

    var user = new UserModel({username:'lsg', password: '123456'});
        user.save(callback);
    

    10、删除

    UserModel.remove({
            username: 'lsg' 
        }, function (err, r) {
            if (err) return callback && callback(err);
            return callback && callback(null);
        })
    

     

     
  • 相关阅读:
    local 不能解析为127.0.0.1
    完全使用接口方式调用WCF 服务
    【人生】自己对于求职应聘的一些感受
    OO的经典例子
    剪刀、石头、布机器人比赛
    TextTree 文本资料收集轻量级工具
    两个代替重复输入的小工具
    桌面助手 Desktop Helper 自动帮你关闭指定的窗口
    磁盘可用空间平衡
    用C#制造可以继承的“枚举”
  • 原文地址:https://www.cnblogs.com/shenggen/p/5496331.html
Copyright © 2020-2023  润新知