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);
        })
    

     

     
  • 相关阅读:
    DotNET应用架构设计指南 安全 运行管理和通讯策略
    开放、主动、好学、谦虚
    粉丝经济
    选个大市场,组建最优秀的团队,拿到花不完的钱(转)
    一个人,可以看他的学识,他的气质,他的丰采,他的谈吐(转)
    Java基础—ClassLoader的理解(转)
    数据库置疑问题解决
    Android应用中使用百度地图API定位自己的位置(二)
    Hopcroft-Karp算法模版
    html表单提交的几种方法
  • 原文地址:https://www.cnblogs.com/shenggen/p/5496331.html
Copyright © 2011-2022 走看看