zoukankan      html  css  js  c++  java
  • 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);
        })
    

     

     
  • 相关阅读:
    LAMP
    监控和安全运维 1.8 zabbix服务端安装
    监控和安全运维 1.7 nagios配置邮件告警
    易道用车-拿什么说爱你
    unix exec族函数 关于参数的疑惑
    关于 Unix 用户权限及进程权限及 Saved set-user-id
    ANSI C中关于FILE流的一些
    Filco minila 的蛋疼。
    IIS32位,64位模式下切换
    Gvim+Emmet.vim 那些事。
  • 原文地址:https://www.cnblogs.com/shenggen/p/5496331.html
Copyright © 2011-2022 走看看